JSON、AJAX、JSONP、XML
JSON
json是 JavaScript Object Notation 的首字母缩写,单词的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据格式,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式。
JSON是行业内使用最为广泛的数据格式
JSON是一种与开发语言无关的,轻量级数据格式
JSON的载体是字符串
JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用。
基本上所有的编程语言都支持JSON,都提供了对应的解析方法
在WEB数据传输过程中,JSON是以文本,即字符串的轻量级形式传递的,而客户端一般用JS操作的是接收到的JSON对象,所以,JSON对象和JSON字符串之间的相互转换、JSON数据的解析是关键。
Json优点
- 基于纯文本,跨平台传递极其简单;
- Javascript原生支持,后台语言几乎全部支持
- 轻量级数据格式,占用字符少,特别适合互联网传递;
- 可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的
- 容易编写和解析,前提是要知道数据结构
AJAX
ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信。ajax通信的过程不会影响后续javascript的执行,从而实现异步。
同源策略
ajax请求的页面或资源只能是同一个域下面的资源,不能是其他域的资源,这是在设计ajax时基于安全的考虑。('Access-Control-Allow-Origin' )
JQ $.ajax使用方法
常用参数:
- url 请求地址
- type 请求方式,默认是'GET',常用的还有'POST'
- dataType 设置返回的数据格式,常用的是'json'格式,也可以设置为'html'
- data 设置发送给服务器的数据
- success 设置请求成功后的回调函数
- error 设置请求失败后的回调函数
- async 设置是否异步,默认值是'true',表示异步
.AJAX优点
- 无刷新更新数据。
- 异步与服务器通信。
- 前端和后端负载平衡。
- 基于标准被广泛支持。
- 界面与应用分离。
AJAX缺点
- AJAX干掉了Back和History功能,即对浏览器机制的破坏。
- AJAX的安全问题。
- 对搜索引擎支持较弱。
- 破坏程序的异常处理机制。<5>.违背URL和资源定位的初衷。
- AJAX不能很好支持移动设备。
- 客户端过肥,太多客户端代码造成开发上的成本。
原生JS AJAX
https://www.cnblogs.com/colima/p/5339227.html
Ajax工作原理、优缺点
https://www.cnblogs.com/yelp/p/3725664.html
JSONP
ajax只能请求同一个域下的数据或资源,有时候需要跨域请求数据,就需要用到jsonp技术,jsonp可以跨域请求数据,它的原理主要是利用了script标签可以跨域链接资源的特性。
JSONP优点
- 它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制,JSONP可以跨越同源策略;
- 它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持
- 在请求完毕后可以通过调用callback的方式回传结果。将回调方法的权限给了调用方。这个就相当于将controller层和view层终于分 开了。我提供的jsonp服务只提供纯服务的数据,至于提供服务以 后的页面渲染和后续view操作都由调用者来自己定义就好了。如果有两个页面需要渲染同一份数据,你们只需要有不同的渲染逻辑就可以了,逻辑都可以使用同 一个jsonp服务。
JSONP缺点
- 它只支持GET请求而不支持POST等其它类型的HTTP请求
- 它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。
- jsonp在调用失败的时候不会返回各种HTTP状态码。
- 缺点是安全性。万一假如提供jsonp的服务存在页面注入漏洞,即它返回的javascript的内容被人控制的。那么结果是什么?所有调用这个 jsonp的网站都会存在漏洞。于是无法把危险控制在一个域名下…所以在使用jsonp的时候必须要保证使用的jsonp服务必须是安全可信的
什么是jsonp
http://www.bejson.com/knownjson/aboutjsonp/IFjNm1Yvo
jsonp原理详解
https://blog.csdn.net/tianjindong0804/article/details/84971922
XML
扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
XML优点
- 格式统一,符合标准
- 容易与其他系统进行远程交互,数据共享比较方便
XML缺点
- XML文件庞大,文件格式复杂,传输占带宽
- 服务器和客户端都需要花费大量代码来解析XML,导致服务器和客户端代码变得异常复杂且不易维护
- 客户端不同浏览器之间解析XML方式不一致,需要重复编写很多代码
- 服务器端和客户端解析XML花费较多的资源和时间