Ajax数据格式摘要

l 在服务器端 AJAX 是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以。

l 从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送。服务器端的编程语言只能以如下 3 种格式返回数据:

•XML

•JSON

•HTML

(1)XML

l 优点:

•XML 是一种通用的数据格式。

•不必把数据强加到已定义好的格式中,而是要为数据自定义合适的标记

•利用 DOM 可以完全掌控文档。

l 缺点:

•如果文档来自于服务器,就必须得保证文档含有正确的首部信息。若文档类型不正确,那么 responseXML 的值将是空的。

•当浏览器接收到长的 XML 文件后, DOM 解析可能会很复杂

(2)JSON

l JSON(JavaScriptObject Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。

l JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔

规则如下:

1)映射用冒号(“:”)表示。名称:值

2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2

3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}

4) 并列数据的集合(数组)用方括号(“[]”)表示。

[

{名称1:值,名称2:值2},

{名称1:值,名称2:值2}

]

5)元素值可具有的类型:string,number,object,array,true,false,null

l JSON用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。可用大括号分级嵌套数据。

l 对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法

l JSON只是一种文本字符串。它被存储在 responseText 属性

l 为了读取存储在 responseText 属性中的 JSON 数据,需要根据 JavaScript 的 eval 语句。函数 eval 会把一个字符串当作它的参数然后这个字符串会被当作JavaScript 代码来执行。因为 JSON 的字符串就是由 JavaScript 代码构成的,所以它本身是可执行的

l 代码实例:


JavaScript中的JSON:

例子一:

 <script language="JavaScript">
     var people ={"firstName": "Brett",//创建JS对象的一种方式
 "lastName":"McLaughlin","email": "brett@newInstance.com" 
};
     alert(people.firstName);
     alert(people.lastName);
     alert(people.email);
 </script>

例子二:

 <script language="JavaScript">
      var people =[			//创建对象数组
                     {"firstName": "Brett","email": "brett@newInstance.com" },{"firstName": "Mary","email": "mary@newInstance.com" }
                ];

    alert(people[0].firstName);
    alert(people[0].email);
    alert(people[1].firstName);
alert(people[1].email); 

 </script>

例子三:

<script language="JavaScript">
     var people ={		//通过JSON创建对象,对象中创建对象数组programmers
            "programmers":
              [
                {"firstName": "Brett",{"firstName": "Jason","email": "jason@servlets.com" }
              ]
};

window.alert(people.programmers[0].firstName);
window.alert(people.programmers[1].email);
 </script>

例子四:

 <script language="JavaScript">
    var people ={			//在对象中创建多个对象数组
            "programmers": [
            { "firstName": "Brett",{ "firstName": "Jason","email": "jason@servlets.com" },{ "firstName": "Elliotte","lastName":"Harold","email": "elharo@macfaq.com" }
           ],"authors": [
            { "firstName": "Isaac","genre": "science fiction" },{ "firstName": "Tad","genre": "fantasy" },{ "firstName": "Frank","genre": "christian fiction" }
           ],"musicians": [
            { "firstName": "Eric","instrument": "guitar" },{ "firstName": "Sergei","instrument": "piano" }
           ]};
    window.alert(people.programmers[1].firstName);
    window.alert(people.musicians[1].instrument);
 </script>

例子五

	<script language="JavaScript">
	      var people ={
	             "username":"mary",	             "age":"20",	             "info":{"tel":"1234566","celltelphone":788666},	             "address":[
	                     {"city":"beijing","code":"1000022"},	                     {"city":"shanghai","code":"2210444"}
	              ]
	        };

	      window.alert(people.username);
	      window.alert(people.info.tel);
	      window.alert(people.address[0].city);
	 </script>

JSON的优点和缺点:

l 优点:

• 作为一种数据传输格式,JSON 与 XML 很相似,但是它更加灵巧。

• JSON不需要从服务器端发送含有特定内容类型的首部信息。

l 缺点:

• 语法过于严谨

代码不易读

• eval函数存在风险

(3)HTML

解析HTML:

l HTML 由一些普通文本组成。如果服务器通过XMLHttpRequest 发送 HTML, 文本将存储在responseText 属性中。

l 不必从 responseText 属性中读取数据。它已经是希望的格式,可以直接将它插入到页面中。

l 插入 HTML 代码最简单的方法是更新这个元素的 innerHTML 属性

HTML优点和缺点:

l 优点:

•从服务器端发送的 HTML 代码在浏览器端不需要用 JavaScript 进行解析。

•HTML 的可读性好。

•HTML 代码块与 innerHTML 属性搭配,效率高。

l 缺点:

•若需要通过 AJAX 更新一篇文档的多个部分,HTML 不合适(拆串)

•innerHTML 并非 DOM 标准。

(4)三者对比:

l 若应用程序不需要与其他应用程序共享数据的时候,使用 HTML 片段来返回数据时最简单的

l 如果数据需要重用,JSON 文件是个不错的选择,其在性能文件大小方面有优势

l 当远程应用程序未知时,XML 文档是首选,因为 XML 是 web 服务领域的 “世界语”

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...