ASP.NET AJAX 之服务器端页面流程

原创 2007年09月24日 09:55:00

很明显的,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大概的流程如下:


局部更新的POSTBACK大概的流程如下:



其中 PageRequestManager 类在 IsAsyncPostBackRequest() 方法中通过分析 Headers 中“Pragma”的值是否是 “Deltea=true” 来决定是否是局部更新模式。然后在执行 ScriptManager 的 LoadPostData() 中找出哪个 UpdatePanel 需要更新以及是由哪个元素造成的 PostBack,记住在前面说过,在局部更新时,类似”ScriptManager1=UpdatePanel1|btnUpdate&....“ 这样的数据被提交到服务器端了。然后在执行 ScriptManager 的 OnPreRender() 时,PageRequestManager 类调用了 Page 类的 SetRenderMethodDelegate(),通过设置一个 RenderMethod,实际上 PageRequestManager 类接管了显示输出的逻辑。

 

相关文章推荐

使用ASP.NET AJAX异步调用Web Service和页面中的类方法(6):服务器端和客户端数据类型的自动转换:复杂类型

====================================================== 注:本文源代码点此下载 =============================...

使用ASP.NET AJAX异步调用Web Service和页面中的类方法(7):服务器端和客户端数据类型的自动转换:泛型集合类型

====================================================== 注:本文源代码点此下载 =============================...

ASP.NET AJAX服务器端控件官方视频教程 下载--英文

How Do I?” Videos This video series consists of over two hours of content on how to get up and ru...

ASP.NET AJAX服务器端控件官方视频教程 下载

====================================================== 注:本文源代码点此下载 =============================...

ASP.NET Web页面是如何在Web服务器端产生的

简介    你是否仔细地想过当一个Asp.net Web页面请求到达服务器的时候,服务器端发生了什么?服务器是如何处理到来的请求的?发送给浏览器的HTML是怎么产生的?开发者可能会用什么机制去处理不...
  • Rechan
  • Rechan
  • 2012年04月11日 22:30
  • 472

asp.net服务器端跳转页面的三种方法

  1、Response.Redirect这个跳转页面的方法跳转速度不快,因为它要走2次回发(postback)。    它可以跳转到任何页面,没有站点页面限制(可以由baidu跳转到google...
  • hanwest
  • hanwest
  • 2011年02月24日 12:51
  • 4124
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET AJAX 之服务器端页面流程
举报原因:
原因补充:

(最多只允许输入30个字)