2011年2月17日 星期四

3-4 ASP.NET中的Web工作流程

        在這裡稍微說明.NETWeb應用程式的工作流程,也對比過去ASP時代中的差異,您可以很清楚的體驗到ASPASP.NET在執行上的不同之處,這些概念,將有助於您釐清系統運作模式,對於高階WEB程式設計來說,有著相當大的幫助。

過去ASP時代,網頁的工作流程如下:
        Client端對IIS提出網頁要求時(最典型的網頁要求就是在瀏覽器的網址列輸入網址,但實際上不只是瀏覽器可以提出網頁要求,也包括了其他可能的Web Request),整個運作如上圖。

        IIS會讀取該ASP網頁,和一般.HTM網頁最大的不同之處,就是IIS會將.ASP網頁交給ASP.DLL去執行網頁中<%…%>的部分,執行完後,將整個網頁(也包括不再<%…%>裡面的一般HTML碼,傳回給提出網頁要求的Client(瀏覽器),完成一個Web Request的動作。

        上面這是一般ASP網頁的做法,那.NET上的ASPX呢?則如下圖:
        Client端對IIS伺服器提出.ASPXWeb Request時,同樣透過IIS來執行,但是不同的是,ASPX網頁會先判斷Code-Behind程式碼是否已經Compile,若尚未Compile,則先進行該動作,這也是當您每次修改過程式第一次執行ASPX網頁會感覺比較久的原因。

        Compile完成之後,會產生Code-Behind ObjectASPX網頁上的控制項以及Web Form本身在執行時所需要進行的相關程式運作,均靠該Object來達成。
而第二次執行的時候,由於Code Behind程式碼已經經過Compile,因此直接跳到ASPX網頁,ASPX網頁上需要的程式運作都會透過Code-Behind Object來執行,最後把HTML碼傳回IIS,經由IIS再傳到Client端。

        透過這樣的流程,您就會比較清楚為何ASPX的執行效率會比ASP快,因為主要的程式運作都在Code-Behind Object上,而Code-Behind Object是經過編譯的程式,副檔名是DLL,但請注意,該DLL並非COM Component,而是.NET環境上的中繼碼。但是執行效率會明顯的比ASP這類的Script來的高。

        上面這些是ASPX.NET上的運作流程,從下個章節開始,我們會繼續探討ASPX檔案的核心,也就是WebFom物件,並繼續介紹Web Form物件的運作方式,這些技術資料可以有效的幫助您撰寫高效率的Web應用程式,並且對ASP.NET有完整的掌握度,發揮.NET上應有的強悍功能,撰寫出卓越的應用程式。

沒有留言:

張貼留言