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

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

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

系統 3117 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條評論
主站蜘蛛池模板: 资中县| 岑巩县| 甘泉县| 岳阳市| 保靖县| 都匀市| 盈江县| 翁源县| 扎囊县| 公安县| 遵义县| 溧阳市| 炉霍县| 肥西县| 彩票| 清流县| 文成县| 维西| 鸡东县| 九江县| 涪陵区| 河北区| 清水河县| 邛崃市| 武宁县| 明水县| 谷城县| 嘉义县| 宝兴县| 甘孜| 石林| 诏安县| 莱州市| 乌什县| 青海省| 宣恩县| 旅游| 济源市| 江城| 扎兰屯市| 精河县|