本文章记录本人在深入学习Javascirpt AJAX中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。
避免使用 XML
没有哪种格式从始至终比其他格式都更好。根据传送数据的类型、在页面上使用的目的不同,某种格式数据可能下周更快,另一种数据可能解析更快。
XML
格式数据极其的冗长。因为每个离散的数据片段需要大量的XML
结构,所有有效的数据的比例非常低。XML
语法还有轻微的模糊。
还有,解析XML
是非常占程序员的精力的。你需要提前了解详细的结构和确切地知道如何解开这个结构,然后细心地将他们写入js
对象中。
谨慎使用 HTML 格式
js
是能够较快的把一个大数据结构转化为简单的html
,但是服务器完成同样的工作的速度更加快。一种技术考虑是在服务器端构建整个html
,然后将其传递给客户端,js
只是简单的下载它并且放入innerHTML
。
什么情况下使用html格式:
html
是一种详细的数据格式,比XML
更加的冗长。数据本身的最外层可以有嵌套的html
标签,每个标签都具有id class
等其他的属性。但是使用html
格式还是可能比实际的数据占用更多的空间。正因如此。只有在客户端CPU
比带宽更受限的时候才使用这个技术。
有一种格式是包含最少数量的结构,需要在客户端解析数据。如JSON
等将这种格式下载到客户机非常块,然而这一过程需要引擎花费更多的时间将他们转化成html
以显示在页面上。这是需要很多字符的操作,而字符的操作也是js
最慢的操作之一。
在服务器上创建html
,这种格式在线操作数据量大,下载时间长,不过一旦下载完,只需要一个操作就可以显示在页面上。这种格式与其他几种格式的差别:“解析”在这种情况下指的是将html
插入dom
的操作。此外,html
不能像本地js
数组那样轻易迅速地进行迭代操作。
html格式的缺点
html
传输量大,需要的解析时间也很长。将html
插入到dom
的单一操作看似简单,只有一行代码,却需要时间加载很多数据。一句话总结html
格式:作为数据格式,它缓慢且臃肿。
推荐使用 JSON
JSON
是一种轻量级易与解析的数据格式,它按照js
的对象和数组的字面量格式来书写。下面的代码是用JSON
编写的用户列表:
[
{
"name": "john",
"age": 15
},
{
"name": "wall",
"age": 22
},
{
"name": "ben",
"age": 8
}
]
JSON的优点:
相比与XML
,JSON
有许多优点:在总响应报文中,结构占用的空间更小。数据占用的更多。JSON
对大多数的服务端编程语言/解码库之间有着很好的互操作性。JSON
在客户端的解析工作微不足道,可将更多的代码的时间放在其他数据的处理上。
使用JSONP:
当你使用XHR
的时候,JSON
数据作为一个字符串返回。该字符串通过eval()
或者JSON.parse()
转换为一个本地的对象。当使用动态脚本标签插入的时候,JSON
数据被视另一个js
文件并作为本地码执行。为做到这一点,数据必须被包括在回调函数之中。这就是所谓的JSON
填充或JSONP
。下面是用JSONP
编写的用户列表:
parseJSON([
{
"name": "john",
"age": 15
},
{
"name": "wall",
"age": 22
},
{
"name": "ben",
"age": 8
}
])
JSONP
文件大小和下载时间与XHR
测试基本相同,而解析时间几乎块了10倍。标准JSONP
的解析时间为0,因为根本就用不着解析,他已经是本地格式了。
最快的JSON
格式就是使用数组的JSONP
格式,虽然这种格式只比使用XHR
的JSON
略快,但是这种差异随着列表尺寸的增大而增大。如果所从事的项目需要一个由10000以上的单元构成的列表,那么使用JSONP
比使用JSON
快多了。
JSONP的问题:
要避免使用JSONP
还有一个与性能无关的原因:JSONP
必须是可执行的js
,利用动态脚本注入技术可以在任何网站上被任何人调用。从另一个角度来说,JSON
在运行之前并不是有效的js
,使用XHR
时只是被当作字符串获取。不要将任何敏感的数据编码设置为JSONP
,因为无法确定他是否包含私密信息、随机的url
或者cookie
。
最后,如果文章有什么错误和疑问的地方,请指出。与sf各位共勉!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。