欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
ASP.NET:掌握Web窗體的生命周期與狀態(tài)管理
如果你具有使用 Active Server Pages (ASP) 的經(jīng)驗,你將認識到 ASP 是線(xiàn)性處理模型。ASP 頁(yè)是按從上到下的順序處理的。ASP 代碼和靜態(tài) HTML 的每一行都按其在文件中的顯示順序進(jìn)行處理。在往返行程中用戶(hù)操作導致頁(yè)被發(fā)送到服務(wù)器。因為此操作導致往返行程,所以服務(wù)器必須重新創(chuàng )建該頁(yè)。在重新創(chuàng )建該頁(yè)后,將通過(guò)與以前相同的從上到下的順序對該頁(yè)進(jìn)行處理,因此,該頁(yè)未表現出真正的事件驅動(dòng)行為。若要創(chuàng )建事件驅動(dòng)體驗,你需要顯式設計它。此外,你必須在最基本的級別上顯式維護頁(yè)和控件狀態(tài)。此模型限制了可以組合的用戶(hù)界面的豐富程度,并且此模型增加了需要支持它的代碼的復雜性。

  與此相比,傳統 Visual Basic 應用程序中的事件驅動(dòng)模型包含可編程的元素,這些元素可被初始化并在窗體上顯示。用戶(hù)與這些元素進(jìn)行交互,而這又導致引發(fā)調用事件處理程序的事件。此模型支持真正的事件驅動(dòng)行為,這在設計上極大拓寬了可以組合的用戶(hù)界面的豐富程度,并且降低了需要支持它的代碼的復雜性。

  ASP.NET 通過(guò)模擬事件驅動(dòng)模型的行為代替了 ASP 的線(xiàn)性處理模型。提供 ASP.NET 頁(yè)框架以隱式地為你建立事件和事件處理程序的關(guān)聯(lián)。利用該頁(yè)框架,你可以很容易地創(chuàng )建響應用戶(hù)操作的用戶(hù)界面。

  首先,我們必須先了解一下Web窗體的生命周期,才能更好的了解Web窗體的狀態(tài)管理。

  一個(gè)Web窗體的生命周期類(lèi)似于在服務(wù)器中運行的Web進(jìn)程的生命周期。一個(gè)Web窗體從實(shí)例化分配內存空間到處理結束釋放內存,一般經(jīng)歷下面4個(gè)步驟:初始化、頁(yè)面裝載、事件處理和資源清理。

 ?。?)頁(yè)面初始化

  當頁(yè)面被初始化時(shí),發(fā)生第一個(gè)事件Page_Init。系統會(huì )執行創(chuàng )建和設置一個(gè)例示所需要的所有初始化步驟。

 ?。?)頁(yè)面裝載

  頁(yè)面裝載在初始化之后,所發(fā)生的事件叫做 Page_Load,它的用途如下:

  根據 Page.IsPostBack 屬性檢查頁(yè)面是不是第一次被處理;

  第一次處理頁(yè)面時(shí)執行數據捆綁,或者在以后的循環(huán)過(guò)程中重新判斷數據捆綁表達式;

  讀取和更新控件屬性;

  恢復在保存步驟中所保存的前一個(gè)客戶(hù)請求的狀態(tài);

 ?。?)事件處理

  Web窗體上的每個(gè)動(dòng)作都激活一個(gè)到達服務(wù)器的事件。一個(gè)Web窗體有兩個(gè)視圖:一個(gè)客戶(hù)視圖和一個(gè)服務(wù)器視圖。所有的數據處理都在服務(wù)器上進(jìn)行。當通過(guò)點(diǎn)擊鼠標或其它方法引起一個(gè)事件時(shí),事件就到達服務(wù)器并返回相應的數據。

 ?。?)資源清理

  最后一步發(fā)生于一個(gè)窗體完成了它的任務(wù)并且準備卸載的時(shí)候,這時(shí)激活Page_Unload事件,完成最后的資源清理工作,比如:關(guān)閉文件,關(guān)閉數據庫連接,丟棄對象。

  我們知道基于Web的訪(fǎng)問(wèn)方式是斷開(kāi)式的,Web頁(yè)面是無(wú)狀態(tài)性的。而于A(yíng)SP中的線(xiàn)性驅動(dòng)方式不同的是ASP.NET采用的是事件驅動(dòng)模式,那么 ,Web窗體是怎么樣做到ASP.NET頁(yè)面狀態(tài)的維護的呢?在A(yíng)SP.NET中引入了一個(gè)概念:View State,從而用View State來(lái)保存頁(yè)面的狀態(tài)信息。

  除了第一次的訪(fǎng)問(wèn)請求是有基類(lèi)生成以外,以后每次客戶(hù)端的回傳都是根據客戶(hù)端傳來(lái)的頁(yè)面狀態(tài)來(lái)重新創(chuàng )建頁(yè)面。而頁(yè)面的各個(gè)狀態(tài)信息就保存在客戶(hù)端頁(yè)面源文件的隱藏字段<input type="hidden" name="__VIEWSTATE" value=""/>中,我們可以通過(guò)瀏覽器查看到它,value的值就是經(jīng)過(guò)加密的頁(yè)面狀態(tài)信息。服務(wù)器根據value值進(jìn)行窗體的再現,然后在窗體的事件處理階段進(jìn)行執行響應的事件過(guò)程,然后把執行結果返回到客戶(hù)端,并且改變Web窗體的狀態(tài)值,并回寫(xiě)到value值中。最后到達資源清理階段。整個(gè)過(guò)程就是一個(gè)Web窗體的生命周期,同時(shí)也完成了頁(yè)面狀態(tài)的管理。

  下面這個(gè)實(shí)例演示了ASP.NET頁(yè)面框架是如何維護頁(yè)面狀態(tài)的。所有代碼如下:

  <%@ Page Language="VB" %>
  <script runat="server">
     Sub Button1_Click(sender As Object, e As EventArgs)
    ‘使viewstate(“value”)的值增1
    viewstate("value") += 1
          Label1.Text = "這是第" & Str(viewstate("value")) & "點(diǎn)擊按鈕"
  End Sub
  sub page_Load(sender As Object, e As EventArgs)
  ‘判斷是否為第一次處理該頁(yè)面
  ‘如果是則使viewstate類(lèi)保存鍵value的值為0
     If Not Page.IsPostBack Then
              viewstate("value") = 0
              Label1.Text = "這是第" & Str(viewstate("value")) & "點(diǎn)擊按鈕"
          End If
  end sub
  </script>
  <html>
  <head>
      <title>頁(yè)面狀態(tài)管理</title>
  </head>
  <body ms_positioning="GridLayout">
      <form id="Form1" method="post" runat="server">
          <asp:Label id="Label1" runat="server" width="176px"></asp:Label>
          <br />
          <asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="點(diǎn)擊累加"></asp:Button>
      </form>
  </body>
  </html>

  保存為viewstate.aspx,運行結果如圖4.9所示。

  


圖4.9 點(diǎn)擊3次按鈕之后

  在客戶(hù)端的瀏覽器中,我們查看源文件,可以查看到的隱藏字段的值為:
  <input type="hidden" name="__VIEWSTATE" value="dDwtOTk1MjE0NDA4O3Q8cDxsPHZhbHVlOz47bDxpPDM+Oz4+O2w8aTwxP
js+O2w8dDw7bDxpPDE+Oz47bDx0PHA8cDxsPFRleHQ7PjtsPOi/meaYr+esrCAz54K5
5Ye75oyJ6ZKuOz4+Oz47Oz47Pj47Pj47PmLc5pTevWJok9DSup0E5RUygUMi" />
  而整個(gè)頁(yè)面的狀態(tài)信息就其中

作者:李宗民  來(lái)源:IT168  (責任編輯:webjx) 
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
asp.net2.0 hiddenfield控件_asp.net技巧-NET編程
ASP.NET頁(yè)面——視圖狀態(tài)
ASP.NET 2.0頁(yè)面狀態(tài)持續:ViewState與控件 - 51CTO.COM
Asp.net中的ViewState用法
ASP.NET頁(yè)面解析(3)
Post和Get的區別(兼談頁(yè)面間傳值的方式)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久