日期:2014-05-16  浏览次数:20552 次

关于ajax类库的局限思考

目前对于各大前端框架来言,都支持访问一个ajax对象,它屏蔽了浏览器之间的差异,给使用者一个统一的接口,使得使用者专注于项目本身而不是XHR的兼容问题。但是:各个前端库在封装统一的接口的时候,XMLHttpRequest本身的一些功能被隐藏了。

?

multipart XHR 中使用了流功能。通过监听readyState为3的状态,我们可以在一个较大的响应还没有完全接受之前把它进行分段处理。这样使得我们可以实时处理响应片段,这也是MXHR能提升性能的主要原因。

?

?

multipart XHR

?

  • 允许客户端只用一个HTTP请求就可以从服务端向客户端传送多个资源。
  • 通过在服务端将资源(CSS,JS等)打包成一个由双方约定的字符串分割的长字符串并发送到客户端
  • 用Javascript代码处理长字符串,并提供它的mime-type类型传入的其他"头信息"解析每个资源


缺点:
  • 以这种方式获取的资源不能被浏览器缓存
  • 老版本的IE不支持readyState为3的状态和data:URL。
  • IE8支持
适合提升性能的应用场景
  • 无需缓存的外部资源(图片等)
  • 网站的每一个页面都已经进行模块化,独立地依赖自己的css与js等文件。