很明顯的,ScriptManager和UpdatePanel是ASP.NETAJAX中最重要的2個類。用Reflector查看Micr" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

ASP.NET AJAX 之服務器端頁面流程

系統 2825 0
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

很明顯的,ScriptManager 和 UpdatePanel 是ASP.NET AJAX中最重要的2個類。

用Reflector查看Microsoft.Web.Extensions.dll 里的類時,發現有很多個接口,譬如象IHtmlForm,IHttpBrowserCapabilities,IHttpCachePolicy,IHttpContext,IHttpRequest,IHttpResponse,IPage等,封裝了System.Web里對應類的某些方法,還有對應的一些Wrapper類,譬如HtmlFormWrapper ,HttpBrowserCapabilitiesWrapper,HttpCachePolicyWrapper,HttpContextWrapper,HttpRequestWrapper,HttpResponseWrapper,PageWrapper等,使用System.Web里對應類的對象實現了上面這些接口的方法。看上去,下一個版本ASP.NET將會有很多重構!

仔細看了一下 ScriptManager 類的實現,發現很多一些功能都被抽象出來, 封裝在 PageRequestManager 類(客戶端有一個同名的類)里。

頁面起始的GET大概的流程如下:

ASP.NET AJAX 之服務器端頁面流程
局部更新的POSTBACK大概的流程如下:

ASP.NET AJAX 之服務器端頁面流程

其中 PageRequestManager 類在 IsAsyncPostBackRequest() 方法中通過分析 Headers 中“Pragma”的值是否是 “Deltea=true” 來決定是否是局部更新模式。然后在執行 ScriptManager 的 LoadPostData() 中找出哪個 UpdatePanel 需要更新以及是由哪個元素造成的 PostBack,記住在前面說過,在局部更新時,類似”ScriptManager1=UpdatePanel1|btnUpdate&....“ 這樣的數據被提交到服務器端了。然后在執行 ScriptManager 的 OnPreRender() 時,PageRequestManager 類調用了 Page 類的 SetRenderMethodDelegate(),通過設置一個 RenderMethod,實際上 PageRequestManager 類接管了顯示輸出的邏輯。




ASP.NET AJAX 之服務器端頁面流程


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 罗甸县| 平乡县| 林周县| 吴堡县| 广丰县| 新龙县| 博客| 石屏县| 赤壁市| 宁德市| 宁海县| 共和县| 疏附县| 政和县| 海淀区| 安仁县| 上虞市| 汕头市| 克什克腾旗| 临泉县| 江达县| 舟曲县| 即墨市| 项城市| 尼木县| 呈贡县| 永济市| 莫力| 青浦区| 湖口县| 沅陵县| 鹤壁市| 高邮市| 浑源县| 阿克苏市| 库尔勒市| 修武县| 高雄县| 余庆县| 松溪县| 惠水县|