AJAX 应用程序体系结构3
剖析 AJAX 回发
若要使 ASP.NET 页面成为部分呈现的页面,首先必须向页面添加一个脚本管理器,然后通过使用 UpdatePanel 控件进行封装,从而定义可独立更新的区域。例如:
< ?xml:namespace prefix = asp />
< asp:ScriptManager runat="server">< /asp:ScriptManager>
< asp:UpdatePanel id=UpdatePanel1 runat="server">
< CONTENTTEMPLATE>
< %-- Markup of the region goes here --%>
< /CONTENTTEMPLATE>
< /asp:UpdatePanel>
UpdatePanel 控件不会以任何方式改变为该区域生成的可见标记,而只是向原始标记添加一个外围
标记:
< DIV id=UpdatePanel1>
< %-- Markup of the region goes here --%>
< /DIV>
什么会触发 AJAX 回发?如何进行管理?由谁管理?每当脚本管理器在页面上检测到一个或多个 UpdatePanel 控件时,它会发出如下的脚本程序块:
< SCRIPT type=text/javascript>
Sys.WebForms.PageRequestManager._initialize('ScriptManager1',
document.getElementById('form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(
['tUpdatePanel1','tUpdatePanel2'], [], [], 90);
< /SCRIPT>
_initialize 方法是客户端 PageRequestManager 对象上的静态方法(参见 MicrosoftAjaxWebForms.js)。它会创建一个 PageRequestManager 类的全局实例,并将其初始化。该类充当一个单例,并且是后来可通过 getInstance 方法来检索的唯一可用实例。上述代码段的第二个语句向客户端框架注册了一组 UpdatePanel 控件。每个服务器端 UpdatePanel 控件都通过其 ID 进行引用。
此处发生的关键操作在 _initialize 方法内。如上所述,在创建该类的单个实例后,该代码会将其初始化。此时,还为 DOM 表单对象的提交事件注册了一个处理程序。这意味着,每当页面提交表单时,AJAX 脚本会介入并使用 XMLHttpRequest 发出请求,而不是让请求经历普通的浏览器回发。最初的表单字段集保持不变,并且为服务器端脚本管理器方便起见,会附加一些额外信息。因此,AJAX 回发上载的信息要比常规 ASP.NET 回发多一点。
视图状态以及任何其他隐藏字段随请求一起执行并上载到服务器。返回途中,会一同下载更新的视图状态与新的隐藏字段及可能更短的标记(如果有)。特别是,该响应只包括回发期间修改的可更新区域的标记。该列表包括触发回发的 Upda
相关文档:
3.4理解继承
一.基于原型的继承:
步骤:
(1)在子类构造函数中调用基类构造函数,从而继承基类的属性。
(2)将基类的一个新实例赋给子类,从而继承基类的方法。
Samples.Cat=function()
{
Samples.Pet.call(this);
}
Sample ......
jquery中用ajax(貌似编码默认为utf-8)如果有中文的话 会出现乱码 下面的解决办法之一:
以下是js中的代码
classname=encodeURI($('#classname').val());
classdescription=encodeURI($('#classdescription').val());
actionArr={classname:classname,classdescription:classdescription};
$.post("product_class ......
1. 实现对属性的 Ajax 修改:
1). 发送的 ajax 请求中需要包含哪些信息呢
①. 要修改的员工的 id.
②. 要修改的属性的名字.
③. 要修改的属性的值.
......
<script type="text/javascript">
function addUrl(){
//1、设置请求url地址
var name = document.getElementById("name").value;
var text = document.getElementById("url").value;
var url = "insertUrl.do?name="+name+
"&url="+text+"&time"+new Date() ;
//2、创建xmlHttpRequest对象
x ......