一、数据传输技术

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。

现代web数据传输技术及数据格式相关推荐

  1. web可视化技术发展(5/6)

    EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习.这篇paper的信息为:"Mwalongo, ...

  2. .Net Web开发技术栈

    有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎么学,学什么,怎么系统的学,为此我以我微薄之力总结归纳写了一篇.Net web开发技术栈,以此帮助那些想学,却不知 ...

  3. 怎么更好掌握Web前端技术?JS的跨域是怎么回事?

    怎么更好掌握Web前端技术?JS的跨域是怎么回事?JavaScript跨域是指通过JS在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过JS获取页面中不同域的框架中(if ...

  4. hualinux 1.25:Web开发技术发展史

    目录 一.web的诞生 二.动态内容的出现:CGI 三.Web编程脚本语言:PHP/ASP/JSP 四.分布式企业计算平台:J2EE/.Net 五.框架横飞的年代:MVC,ORM 六.回归Web本质: ...

  5. 具有先天开源优势的Web前端技术社区里也是波澜不惊

    让人感觉奇怪的是,在中文社区始终未见这种学院派.甚至在具有先天开源优势的Web前端技术社区里也是波澜不惊,可见写一篇好的技术文案真的比登天还难.我所见到的大部分所谓文档索性把代码里输出数据的语句块拷贝 ...

  6. 2007年web开发技术预言

    摘要: 2006年即将过去,这一年被广泛地看作是:在线投资新浪潮的一年:更新的web技术和技巧兴起和成长年:从未这样采用web能量的新商务模式的兴起(和衰落)的一年.根据SitePoint和Ektro ...

  7. .Net Web开发技术栈 收藏

    原文:http://www.cnblogs.com/1996V/p/7700087.html#!comments 有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎 ...

  8. GPRS GPRS(General Packet Radio Service)是通用分组无线服务技术的简称,它是GSM移动电话用户可用的一种移动数据业务,属于第二代移动通信中的数据传输技术...

    GPRS 锁定 本词条由"科普中国"百科科学词条编写与应用工作项目 审核 . GPRS(General Packet Radio Service)是通用分组无线服务技术的简称,它是 ...

  9. 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈...

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先 ...

最新文章

  1. MySQL 中的myisam内部临时表
  2. 通过案例了解puppet创建虚拟资源解决资源冲突问题
  3. Hadoop源码分析HDFS ClientProtocol——getBlockLocations
  4. JavaScript消息框应用
  5. django-cookie与session的应用场景
  6. JDK 9 中有哪些 jmod 文件?
  7. 学习记录-程序语言基础(1)
  8. Docker 私有仓库registry
  9. Python使用matplotlib可视化模拟正弦余弦折线图
  10. http://www.codeproject.com/Articles/11596/XPTable-NET-ListView-meets-Java-s-JTable
  11. 多线程_并发_同步_快乐影院
  12. 在线轻松制作微信公众号封面次图的方法
  13. Hibernate框架检索策略
  14. 网易微专业IOS开发工程师教程(完整)
  15. 键盘输入 kbhit()
  16. 咕咚要和keep们刚正面,闪电战还是持久战?
  17. Echarts3.0的简单使用,动态获取数据
  18. information about btcoin
  19. Guitar Pro中变调夹的使用方法
  20. 探索区块链C端市场 艺术品、卡牌、音乐皆可NFT

热门文章

  1. python self理解_Python列表理解
  2. 编程课课程感想和建议_最佳在线编程课程
  3. Android AsyncTask示例教程
  4. C++进阶教程之信号处理
  5. 使用Intersection Observer API创建无限加载组件
  6. 设计模式解密(9)- 装饰者模式
  7. Spark on yarn 动态资源配置
  8. 2016-6-3Ajax异步复习
  9. Zookeeper全解析——Client端
  10. /dev/null脚本中作用