我爱Aspx >> Asp.Net >> 用JSON技术加快AJAX程序开发当微软把ActiveX XMLHTTP对象纳入到JavaScript的Internet Explorer实现中时,它实际上已经为Web应用程序的又一次革命(异步JavaScript+XML,简称AJAX)埋下了“火种”。今天,Firefox,Safari,Opera及其它浏览器都支持XMLHttpRequest对象,正是这些支持最终才导致了诸如colr.org,backpackit.com和maps.google.com等著名网站的产生。尽管这些网站(不止这些)所提供的应用程序运行于一种浏览器中,但是它们在行为和外观上却极类似于传统的桌面应用程序。
在AJAX技术中,在用户观看并与页面交互的同时(这正相应于AJAX中的“异步”部分),由页面中的JavaScript负责把数据请求发送到一个Web服务器。这些请求只是一些普通的HTTP请求,与浏览器用于页面(连同其中的任何图像,层叠式样表等内容)检索的HTTP完全相同。同时,XMLHttpRequest对象可以用于检索任何类型的数据,而不仅仅是XML类型。例如,JavaScript可以使用XMLHttpRequest来检索一个来自于Web服务器的普通文本文本并且把它的内容显示于一个表单中。
通过查找位于数据之前的“content-type”头部,XMLHttpRequest对象分析从Web服务器返回的数据的MIME类型。例如,如果这些数据的MIME类型是“text/plain”,那么你可以通过分析XMLHttpRequest对象的responseText属性来存取它;然而,如果其MIME类型为“text/xml”,那么XMLHttpRequest对象必须采取额外的措施:它要在返回的文档对象上运行一个XML分析器并在内存中构建一棵文档对象模型(DOM)树来描述该文档,并且还要使其可用于responseXML属性。然后,你才可以使用JavaScript的标准DOM方法在树中导航并检索元素、属性及位于该DOM树中的其它文本。
虽然XML是进行数据交换的标准方式,但是通常它不是最好的方式。尽管XML可以把结构和元数据添加到数据上,但是它使用了一种相当繁琐的方式。XML还有一种相对复杂的语法,因而需要一种分析器对之进行专门分析。在JavaScript中,XML必须被分析成一棵以备后用的DOM树。并且,一旦你构建了这棵DOM树,你还必须在其中导航以便创建相应的JavaScript对象或者以其它方式在你的客户端Web应用程序中使用XML数据。
幸好,你还有另外更好的可选方案。
二、JSON简介JavaScript对象标志,简称JSON,是一种描述数据的轻量级语法。JSON的优越性基于这样的事实:它本身就是JavaScript语言的一个子集。你会在后面看到这种特征的重要性。首先,让我们比较一下JSON和XML的原始语法。
XML和JSON都使用结构化方法来标记数据。例如,一个地址簿应用程序可能提供一个Web服务?它将以XML形式生成如下的地址卡片:
| <?xml version='1.0' encoding='UTF-8'?><card><fullname>Sean Kelly</fullname><org>SK Consulting</org><emailaddrs><address type='work'>kelly@seankelly.biz</address><address type='home' pref='1'>kelly@seankelly.tv</address></emailaddrs><telephones><tel type='work' pref='1'>+1 214 555 1212</tel><tel type='fax'>+1 214 555 1213</tel><tel type='mobile'>+1 214 555 1214</tel></telephones><addresses><address type='work' format='us'>1234 Main StSpringfield, TX 78080-1216</address><address type='home' format='us'>5678 Main StSpringfield, TX 78080-1316</address></addresses><urls><address type='work'>http://seankelly.biz/</address><address type='home'>http://seankelly.tv/</address></urls></card> |
Ajax在.NET中与Server控件的交互[04-21]
整理Web开发-Ajax社区中有关Ajax..[04-21]
AjaxHelper Flat v0.7 下载[03-18]
用C#绘柱形图(owc编程)[04-21]
JS的IE和Firefox兼容性汇编[04-21]
编写高性能Web 应用程序的 10 个..[04-21]
ASP输出Word、Excel文件[04-21]
UTF-8与GB2312互转方法[04-21]
.net打包自动安装数据库[04-21]
解读C#中的规则表达式(正则表达..[04-21]
C#中的特性(Attributes)[04-21]
几个C#写的网络相关开源组件[04-21]
多个页面向同一目标页面PostBack..[04-21]