本文章记录本人在深入学习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": 8
}
])
JSONP 文件大小和下载时间与XHR 测试基本相同,而解析时间几乎块了10倍。标准JSONP 的解析时间为0,因为根本就用不着解析,他已经是本地格式了。
最快的JSON 格式就是使用数组的JSONP 格式,虽然这种格式只比使用XHR 的JSON 略快,但是这种差异随着列表尺寸的增大而增大。如果所从事的项目需要一个由10000以上的单元构成的列表,那么使用JSONP 比使用JSON 快多了。
JSONP的问题:
要避免使用JSONP 还有一个与性能无关的原因:JSONP 必须是可执行的js ,利用动态脚本注入技术可以在任何网站上被任何人调用。从另一个角度来说,JSON 在运行之前并不是有效的js ,使用XHR 时只是被当作字符串获取。不要将任何敏感的数据编码设置为JSONP ,因为无法确定他是否包含私密信息、随机的url 或者cookie 。
最后,如果文章有什么错误和疑问的地方,请指出。与sf各位共勉!
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|