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

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

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

系統 3152 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條評論
主站蜘蛛池模板: 武冈市| 上虞市| 松江区| 盐城市| 郧西县| 绵竹市| 贵阳市| 砀山县| 鄢陵县| 潞城市| 略阳县| 鹿邑县| 芦溪县| 合作市| 屏南县| 新兴县| 综艺| 大方县| 牡丹江市| 陆河县| 乳源| 巴彦县| 资溪县| 泗水县| 丰城市| 常熟市| 辽阳县| 奉新县| 固阳县| 光泽县| 都昌县| 扬中市| 格尔木市| 航空| 扶绥县| 呼伦贝尔市| 牡丹江市| 广西| 鱼台县| 凌源市| 翁源县|