AJax技术

ASP.NET AJAX:UpdatePanel提示和技巧(7)

字号+ 作者:H5之家 来源:H5之家 2016-01-22 13:02 我要评论( )

目录 更新突出显示 取消 UpdatePanel 更新 多个 UpdatePanel 不使用 UpdatePanel 更新 Web Service != SOAP 和 XML 不论好坏,UpdatePanel 控件都是 ASP.NET AJ

图 5 显示了当执行图 4 中的 Web 方法调用时在网络中传输的数据。除了 HTTP 标头外,请求中被 传输的唯一数据是用户键入的 ZIP Code,而响应中返回的唯一数据是一对表示城市和州的字符串。您不 会看到任何 SOAP 或 XML(或视图状态,就此而言)。相反,输入和输出会通过使用 JavaScript Object Notation (JSON) 进行编码,它比 XML 简短得多,也更易处理。请求和响应并不使用 SOAP,而 是使用一个简单的协议,而这个协议基本上就是 HTTP。HTTP 和 JSON 的组合使对 WebMethods 和页面 方法的 ASP.NET AJAX 调用比传统的 Web 服务调用要有效得多。

Figure5JSON 编码的 输入和输出

请求

POST /Ajax/ZipCodeService.asmx/GetCityAndState HTTP/1.1
Accept: */*
Accept-Language: en-us
Referer: :1997/Ajax/ZipCodePage.aspx
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; ...)
Host: localhost:1997
Content-Length: 15
Connection: Keep-Alive
Cache-Control: no-cache
{"zip":"98052"}

响应

HTTP/1.1 200 OK
Server: ASP.NET Development Server/8.0.0.0
Date: Fri, 29 Dec 2006 21:06:17 GMT
X-AspNet-Version: 2.0.50727
Cache-Control: private, max-age=0
Content-Type: application/json; charset=utf-8
Content-Length: 16
Connection: Close
{"REDMOND", "WA"}

JSON 是一个正在崭露头角的行业标准序列化格式。它还是被 ASP.NET AJAX 使用的本机格式。 Microsoft AJAX Library 的 Sys.Serialization.JavaScriptSerializer 类支持在客户端进行 JSON 序 列化和反序列化。System.Web.Script.Serialization.JavaScriptSerializer 类支持在服务器上进行 JSON 序列化和反序列化。

并非所有类型均与 JSON 兼容。例如,JSON 不能处理具有循环引用的对象。当您需要返回不能与 JSON 兼容的复杂数据类型时,其实您可以使用 ASP.NET AJAX 的 ScriptMethod 属性将返回类型序列化 为 XML。这个技术对返回 XML 数据的方法也很有用,如下所示:

[ScriptMethod (ResponseFormat=ResponseFormat.Xml)]
public XmlDocument GetData()
{
  ...
}

此外,您还可以构建和注册自定义 JSON 转换器,它允许将通常不能与 JSON 兼容的类型序列化和反 序列化。ASP.NET AJAX January Futures CTP 包含三个这样的转换器:一个针对 DataSet,一个针对 DataTable,还有一个针对 DataRow。

请将您想向 Jeff 询问的问题和提出的意见发送至 wicked@microsoft.com.

Jeff Prosise是《MSDN 杂志》的一名特约编辑,同时也是包括《Microsoft .NET 程序设计技术内幕 》(微软出版社,2002)在内的多本著作的作者。他还是 Wintellect () 公司的共 同创始人之一,该公司专门从事 Microsoft .NET 软件的咨询和教育。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JQuery实现Ajax加载图片的方法

    JQuery实现Ajax加载图片的方法

    2016-02-24 17:01

  • 判断用户是不是为ajax请求

    判断用户是不是为ajax请求

    2016-02-24 17:00

  • Ajax与WEB开发 by alixixi.com

    Ajax与WEB开发 by alixixi.com

    2016-02-11 11:02

  • jQuery.ajax()的相关参数及使用

    jQuery.ajax()的相关参数及使用

    2016-02-08 16:00

网友点评