现代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。
现代web数据传输技术及数据格式相关推荐
- web可视化技术发展(5/6)
EverCraft一直在关注Web可视化技术的发展,在本系列文章里,小编将对国外一篇感觉很不错的综述性文章进行翻译,供这一领域的爱好者相互学习.这篇paper的信息为:"Mwalongo, ...
- .Net Web开发技术栈
有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎么学,学什么,怎么系统的学,为此我以我微薄之力总结归纳写了一篇.Net web开发技术栈,以此帮助那些想学,却不知 ...
- 怎么更好掌握Web前端技术?JS的跨域是怎么回事?
怎么更好掌握Web前端技术?JS的跨域是怎么回事?JavaScript跨域是指通过JS在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过JS获取页面中不同域的框架中(if ...
- hualinux 1.25:Web开发技术发展史
目录 一.web的诞生 二.动态内容的出现:CGI 三.Web编程脚本语言:PHP/ASP/JSP 四.分布式企业计算平台:J2EE/.Net 五.框架横飞的年代:MVC,ORM 六.回归Web本质: ...
- 具有先天开源优势的Web前端技术社区里也是波澜不惊
让人感觉奇怪的是,在中文社区始终未见这种学院派.甚至在具有先天开源优势的Web前端技术社区里也是波澜不惊,可见写一篇好的技术文案真的比登天还难.我所见到的大部分所谓文档索性把代码里输出数据的语句块拷贝 ...
- 2007年web开发技术预言
摘要: 2006年即将过去,这一年被广泛地看作是:在线投资新浪潮的一年:更新的web技术和技巧兴起和成长年:从未这样采用web能量的新商务模式的兴起(和衰落)的一年.根据SitePoint和Ektro ...
- .Net Web开发技术栈 收藏
原文:http://www.cnblogs.com/1996V/p/7700087.html#!comments 有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎 ...
- GPRS GPRS(General Packet Radio Service)是通用分组无线服务技术的简称,它是GSM移动电话用户可用的一种移动数据业务,属于第二代移动通信中的数据传输技术...
GPRS 锁定 本词条由"科普中国"百科科学词条编写与应用工作项目 审核 . GPRS(General Packet Radio Service)是通用分组无线服务技术的简称,它是 ...
- 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? .Net Web开发技术栈...
通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先 ...
最新文章
- MySQL 中的myisam内部临时表
- 通过案例了解puppet创建虚拟资源解决资源冲突问题
- Hadoop源码分析HDFS ClientProtocol——getBlockLocations
- JavaScript消息框应用
- django-cookie与session的应用场景
- JDK 9 中有哪些 jmod 文件?
- 学习记录-程序语言基础(1)
- Docker 私有仓库registry
- Python使用matplotlib可视化模拟正弦余弦折线图
- http://www.codeproject.com/Articles/11596/XPTable-NET-ListView-meets-Java-s-JTable
- 多线程_并发_同步_快乐影院
- 在线轻松制作微信公众号封面次图的方法
- Hibernate框架检索策略
- 网易微专业IOS开发工程师教程(完整)
- 键盘输入 kbhit()
- 咕咚要和keep们刚正面,闪电战还是持久战?
- Echarts3.0的简单使用,动态获取数据
- information about btcoin
- Guitar Pro中变调夹的使用方法
- 探索区块链C端市场 艺术品、卡牌、音乐皆可NFT