关闭

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

2863人阅读 评论(2) 收藏 举报

很明显的,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 类接管了显示输出的逻辑。

 
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

ASP.Net 跨域跳转域名 使用jquery ajax请求

解释思路: (一) 假设思路:a:8884/login.html登录选择不同服务器在url带参数[wyh]跳转 到 b:8885/login.html取出url参数[wyh],判断参数[...
  • qq_29596627
  • qq_29596627
  • 2016-08-06 15:16
  • 530

ASP.NET AJAX 控件使用概述

一、ASP.NET AJAX 控件概述 借助 ASP.NET AJAX 控件,使用很少的客户端脚本或不使用客户端脚本就能创建丰富的客户端行为,如在异步回发过程中进行部分页更新(在回发时刷新网页的选定...
  • qustdjx
  • qustdjx
  • 2013-12-22 20:44
  • 1722

Ajax发送json格式数据到Asp.net MVC服务端的一些代码片段

最近一直做些asp.net mvc的页面,每次前端与后端交互,都要baidu查下代码怎么写,也不去思考为什么这么写,导致每每写这代码,都需要下search下代码。 正好现在有点空闲时间,我就把我写的代...
  • qq_26054303
  • qq_26054303
  • 2016-05-17 17:29
  • 774

ASp.net页面加载过程

//————————————————————————ASP.NET页面生命周期描述----------------------------// 下面是ASP.NET页面初始的过程: 1. Pa...
  • dragon_ton
  • dragon_ton
  • 2015-08-28 11:20
  • 841

ASP.NET MVC AJAX表单提交实例

1.首先,新建一个controller。 using System; using System.Collections.Generic; using System.Linq; using Sys...
  • lucahan
  • lucahan
  • 2016-10-15 15:53
  • 2622

Ajax 1.服务器端代码配置测试

什么是Ajax呢,AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML), 国内翻译常为“阿贾克斯”和阿贾克斯足球队同音。Web应用的...
  • qq348843576
  • qq348843576
  • 2015-05-02 18:30
  • 1021

【ASP.net】浏览器和服务器的交互

引言             从CS(Client/Server)学习到BS(Browser/Server)学习,web让客户端化身为最为方便使用的——浏览器,交互性也成为了BS的一大特点。 ...
  • W15732624773
  • W15732624773
  • 2016-08-07 16:36
  • 851

ASP.NET请求处理过程

Asp.Net构架(Http请求处理流程) - Part.1 引言 我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net。他们耐心、细致地告...
  • u013516966
  • u013516966
  • 2015-07-23 11:17
  • 916

$.ajax方法的使用-AJAX请求客户端和服务端的实现

客户端代码: $().ready(function () {   $('#selectNum').change(function () {     var idValue =...
  • coolsky2012
  • coolsky2012
  • 2014-04-12 17:24
  • 2596

ASP.NET—015:ASP.NET中无刷新页面实现

前面也说过在asp.net中前后前交互的问题。使用了ajax.js的方法:$.post和$.ajax。http://blog.csdn.net/yysyangyangyangshan/article/...
  • yysyangyangyangshan
  • yysyangyangyangshan
  • 2014-09-30 00:18
  • 7135
    个人资料
    • 访问:1083802次
    • 积分:14173
    • 等级:
    • 排名:第1019名
    • 原创:305篇
    • 转载:28篇
    • 译文:0篇
    • 评论:592条
    最新评论
    [╄ 冷枫]简介