客户每次请求Web页面过程
客戶每次請求頁面時——通過最初請求或者回送——所發生的事情。
??? 圖中顯示了有5個主要事件:初始化、加載、預提交、提交、處理
我們可以為每個步驟添加代碼。
1.初始化:
ASP.NET處理器第一次接到頁面請求時,首先會觸發Init事件。這個事件可以構建頁面架構,并準備即將提交的頁面控件。OnInit()方法是處理這個事件的默認方法。
Init事件之后,是兩個較小的進程。第一,如果存在試圖狀態,就加載頁面。也就是說,ASP.NET處理器會查找隱藏在<input name="__VIEWSTATE">標記中的頁面內容所包含的、并被包括在頁面請求中的數據。如果找到了這種數據,就對數據進行讀取并編碼,準備在(重新)生成頁面時使用。第二,處理回送數據。在用戶觸發一個服務器端事件時,Web窗體會觸發一個回送,這個回送含有服務器用以進行處理的信息。
2.頁面加載:
加載頁面時,觸發的主要事件就是Load事件。處理Load事件的默認方法是OnLoad事件處理程序;然而,VS.NET通常要在InitializeComponent()方法中添加一行代碼,指出Load事件由Page_Load()方法處理的。
??????? private void InitializeComponent()
??????? {???
??????????? this.Load += new System.EventHandler(this.Page_Load);
??????? }
可以向Page_Load()方法添加代碼,以控制頁面加載時所發生的事件。
3.事件處理:
在這個過程中,ASP.NET處理器要應付一系列被觸發并經過處理的事件。如果頁面正在被回送,還會包括用戶觸發的事件。
PreRender事件也是在這個階段被處理的。處理PreRender事件的默認方法是OnPreRender(),這里要編寫代碼,完成提交頁面的方式的最終改變(這個變化可以保存在回送中,它和下一個步驟中Render()事件處理程序所引起的變化不同)。然后,把這個頁面狀態保存到即將返回給頁面的試圖狀態中。
4.提交:
在這個過程中,通過生成瀏覽器必需顯示的HTML,獲取用以提交將被發送到瀏覽器的頁面代碼。通過向Render()事件處理程序添加代碼,可以生成更多的最終改變,這些改變能夠影響頁面的提交方式,因為Render()事件處理程序可以處理Render事件(注意命名約定中的變化:事件處理程序一定不能被命名為OnRender())。
5.處理無用的對象:
最后這個階段含有用于執行清理操作的代碼,清理工作是通過處理不再使用的對象(比如那些已經完成的數據鏈接)完成的。
?
轉載于:https://www.cnblogs.com/Bear-Study-Hard/archive/2006/04/17/376997.html
總結
以上是生活随笔為你收集整理的客户每次请求Web页面过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于社区气质
- 下一篇: 看到碟摊上有D版的《阿猫阿狗2》