ASP.NET頁面執行機制
阿新 • • 發佈:2019-01-28
當第一次訪問頁面時,頁面請求首先依次經過HttpModuls和HttpHandler的處理,
伺服器接收到HttpHandler的請求後將跳轉到需要訪問的頁面,然後ASP.NET Engine
負責找到這個頁面,並例項化為一個臨時物件。在此過程中會觸發一系列的事件。
其中,一部分事件需要經過物件中的辦法進行處理,之後伺服器會將這個處理後的
頁面移交給Response物件,然後由Response物件將這個頁面傳送到客戶端。這是第一條線路。
因為伺服器之間的會話已經建立,在伺服器中的臨時物件已經建立,所以在這個頁面上重新提交一些資訊
並在次向伺服器傳送請求時,是不用在經過初始化頁面這一部分工作的。故這第二條線路依次提交HttpModuls
HttpHandler請求,然後直接與臨時物件互動並返回。
在第三條線路與第二條線路的不同之處在於,在處理請求時,如果涉及到需要呼叫ASP.NET Cache(ASP.NET快取)
,臨時物件直接從ASP.NET快取提取資訊並返回的。
第四條路線是在重新整理頁面的時候,伺服器接收到並發現這個請求曾經處理過,並將處理結果儲存到一個
由HttpModule管理的輸出快取中。那麼,此時
就可以直接從這個快取中提取資訊並返回,而無需再重新處理一遍。
伺服器接收到HttpHandler的請求後將跳轉到需要訪問的頁面,然後ASP.NET Engine
負責找到這個頁面,並例項化為一個臨時物件。在此過程中會觸發一系列的事件。
其中,一部分事件需要經過物件中的辦法進行處理,之後伺服器會將這個處理後的
頁面移交給Response物件,然後由Response物件將這個頁面傳送到客戶端。這是第一條線路。
因為伺服器之間的會話已經建立,在伺服器中的臨時物件已經建立,所以在這個頁面上重新提交一些資訊
並在次向伺服器傳送請求時,是不用在經過初始化頁面這一部分工作的。故這第二條線路依次提交HttpModuls
HttpHandler請求,然後直接與臨時物件互動並返回。
在第三條線路與第二條線路的不同之處在於,在處理請求時,如果涉及到需要呼叫ASP.NET Cache(ASP.NET快取)
,臨時物件直接從ASP.NET快取提取資訊並返回的。
第四條路線是在重新整理頁面的時候,伺服器接收到並發現這個請求曾經處理過,並將處理結果儲存到一個
由HttpModule管理的輸出快取中。那麼,此時
就可以直接從這個快取中提取資訊並返回,而無需再重新處理一遍。