阅读 14

现代web数据传输技术及数据格式

一、数据传输技术

1、xhrHttpRequest(XHR)

优点:操作灵活,可控性强,可以操作http的header和body。

缺点:跨域请求存在问题,低版本浏览器不支持数据的“流”传输。

注意点:get请求可以被缓存。对于少量数据请求而言,get请求发送数据会更快,post适合发送大量数据(当url的参数大于2048个字符时)。

关于Ajax的跨域请求问题:跨域资源共享CORS,CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求(options),但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。


2、动态脚本注入

优点:可以跨域。执行速度快,因为数据内容直接作为脚本执行,不是通过解析字符串(Ajax请求需要对数据进行字符串的解析)

缺点:对请求的控制有限,必须将数据封装在函数内,引入外部来源的数据时会有隐患。


3、multiple XHR

优点:一个http请求可以获取大量资源。可以通过数据“流”来分别处理各种资源(监听readystate为3时的数据流)

缺点:需要和服务端配合定义数据的传输规则。请求的数据不能够进行缓存。


二、数据格式

1、XML

优点:通用。

缺点:数据结构笨重。解析速度慢。

2、JSON

优点:通用。和javascript语法紧密结合。结构更清晰简单。

3、JSONP

优点:当数据量大的时候,可以使用JSONP形式的数据,通过动态注入脚本的技术,来加快执行速度,因为JSONP数据不需要被解析,可直接被执行。并且能够突破跨域的限制。

4、自定义数据格式

通过和服务端定义更加简便的纯文本数据格式(使用简单的分隔符)来传输数据,也可以大大减少数据被解析的时间。


现今最主流的数据请求技术依旧是Ajax,配合服务端的http缓存的设置,可以更好的提升性能。当面临大量数据的请求和处理的情况,可以考虑自定义的数据格式或者使用JSONP。

关注下面的标签,发现更多相似文章
评论