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优点

  1. 基于纯文本,跨平台传递极其简单;
  2. Javascript原生支持,后台语言几乎全部支持
  3. 轻量级数据格式,占用字符少,特别适合互联网传递;
  4. 可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的
  5. 容易编写和解析,前提是要知道数据结构   

AJAX

ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信。ajax通信的过程不会影响后续javascript的执行,从而实现异步。

同源策略 
ajax请求的页面或资源只能是同一个域下面的资源,不能是其他域的资源,这是在设计ajax时基于安全的考虑。(‘Access-Control-Allow-Origin‘ )

JQ $.ajax使用方法
常用参数:

    1. url 请求地址
    2. type 请求方式,默认是‘GET‘,常用的还有‘POST‘
    3. dataType 设置返回的数据格式,常用的是‘json‘格式,也可以设置为‘html‘
    4. data 设置发送给服务器的数据
    5. success 设置请求成功后的回调函数
    6. error 设置请求失败后的回调函数
    7. async 设置是否异步,默认值是‘true‘,表示异步

.AJAX优点

  1. 无刷新更新数据。
  2. 异步与服务器通信。
  3. 前端和后端负载平衡。
  4. 基于标准被广泛支持。
  5. 界面与应用分离。

AJAX缺点

  1. AJAX干掉了Back和History功能,即对浏览器机制的破坏。
  2. AJAX的安全问题。
  3. 对搜索引擎支持较弱。
  4. 破坏程序的异常处理机制。<5>.违背URL和资源定位的初衷。
  5. AJAX不能很好支持移动设备。
  6. 客户端过肥,太多客户端代码造成开发上的成本。

原生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优点

  1. 它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制,JSONP可以跨越同源策略;
  2. 它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持
  3. 在请求完毕后可以通过调用callback的方式回传结果。将回调方法的权限给了调用方。这个就相当于将controller层和view层终于分 开了。我提供的jsonp服务只提供纯服务的数据,至于提供服务以 后的页面渲染和后续view操作都由调用者来自己定义就好了。如果有两个页面需要渲染同一份数据,你们只需要有不同的渲染逻辑就可以了,逻辑都可以使用同 一个jsonp服务。

JSONP缺点

  1. 它只支持GET请求而不支持POST等其它类型的HTTP请求
  2. 它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。
  3. jsonp在调用失败的时候不会返回各种HTTP状态码。
  4. 缺点是安全性。万一假如提供jsonp的服务存在页面注入漏洞,即它返回的javascript的内容被人控制的。那么结果是什么?所有调用这个 jsonp的网站都会存在漏洞。于是无法把危险控制在一个域名下…所以在使用jsonp的时候必须要保证使用的jsonp服务必须是安全可信的

什么是jsonp

http://www.bejson.com/knownjson/aboutjsonp/IFjNm1Yvo

XML

扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

XML优点

  1. 格式统一,符合标准
  2. 容易与其他系统进行远程交互,数据共享比较方便

XML缺点

  1. XML文件庞大,文件格式复杂,传输占带宽
  2. 服务器和客户端都需要花费大量代码来解析XML,导致服务器和客户端代码变得异常复杂且不易维护
  3. 客户端不同浏览器之间解析XML方式不一致,需要重复编写很多代码
  4. 服务器端和客户端解析XML花费较多的资源和时间

原文地址:https://www.cnblogs.com/goforxiaobo/p/12635565.html

时间: 2024-10-04 21:03:35

JSON、AJAX、JSONP、XML的相关文章

JavaScript之Ajax-4 XML解析(JavaScript中的XML、Ajax返回并解析XML)

一.JavaScript中的XML XML DOM对象 - IE 浏览器通过 ActiveXObject 对象得到 XML DOM 对象 - 其他浏览器通过 DOMParser 对象得到 XML DOM 对象 XML DOM对象的支持 - XML DOM(XML Document Object Model)定义了访问和操作XML文档的标准方法 - DOM 把 XML 文档作为树结构来查看.能够通过DOM树来访问所有元素 加载并解析XML字符串 二.Ajax返回并解析XML 使用XHR发送XML字

ajax基础语法、ajax做登录、ajax做用户名验证是否可用、ajax做关键字查询动态显示、ajax做用表格显示数据并增加操作列

AJAX: AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 如果此页面用到了ajax方法,一定要在页面上端加上: <script src="../../jquery-1.11.2.min.js"></script> ajax基础语法: <script type="text/javascript">

JSON、JSONP、Ajax的区别

什么是JSON JSON是一种基于文本的数据交换方式,或者叫做数据描述格式. JSON的优点: 1.基于纯文本,跨平台传递极其简单: 2.Javascript原生支持,后台语言几乎全部支持: 3.轻量级数据格式,占用字符数量极少,特别适合互联网传递: 4.可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的: 5.容易编写和解析,当然前提是你要知道数据结构: JSON的缺点当然也有,但在作者看来实在是无关紧要的东西,所以不再单独说明. JSON的格式或者叫规则: JS

Ajax返回值之XML、json类型

Ajax返回值之XML.json类型 2015-01-29 ? 注意:Ajax默认是不能跨域的,在最新的2.0里是可以跨域,但是需要对方应答. ? Ajax返回值之XML类型 <HTML代码> <html> ????<head> ????????<title>Ajax返回return</title> ????<script> function?createXHR(){ ????var?xhr?=?null; ????if(window

math and date、ajax、画布

console.log(Math.PI);//圆周率 console.log(Math.sqrt(4));//平方根2 console.log(Math.abs(-2.3));//绝对值2.3 console.log(Math.ceil(-2.3));//上舍入-2 console.log(Math.floor(-2.3));//下舍入-3 console.log(Math.max(-2,3,6,1));//最大值6 console.log(Math.min(-2,3,6,1));//最小值-2

ajax 和jsonp 不是一码事

由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯和本地数据库功能,又或者通过HTML5的WebSocket也可以实现与服务器的通讯和服务端推功能,但这两种方式都有其局限性,前者需要PhoneGap支持,后者要求用户设备必须支持WebSocket,因此都不能算是ST2的原生解决方案,原生的只有AJAX. 说到AJAX就会不可避免的面临两个问题,第一

ajax 和jsonp 不是一码事 细读详解

由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现. 当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯和本地数据库功能,又或者通过HTML5的WebSocket也可以实现与服务器的通讯和服务端推功能,但这两种方式都有其局限性,前者需要PhoneGap支持,后者要求用户设备必须支持WebSocket,因此都不能算是ST2的原生解决方案,原生的只有AJAX. 说到AJAX就会不可避免的面临两个问题,第一

PHP. 03 .ajax传输XML、 ajax传输json、封装

XML简介 XML 指可扩展标记语言 EXtensible Markup Language .设计的时候是用来传递数据的,虽然格式跟HTML类似 xml示例 <?xml version="1.0" encoding="UTF-8"?> <singer> <name>Jay</name> <age>18</age> <skill>Sing</skill> </sing

JSON、JSONP、XML的区别

这两天看jquery手册的时候看到了jsonp.发现手册把jsonp与json放在一起讲解了,所以想写篇文章 梳理一下这三者的关系. jsonp: jsonp是json的一种"使用模式",可以让网页从别的域名(网站)获取资料,即跨域读取数据. 因为同源策略所以当我们从不同的域访问数据时需要使用jsonp.同源策略是浏览器的安全功能. jsonp的核心则是动态的添加<script>标签来调用服务器的js脚本. 看jsonp.html页面的代码: <!DOCTYPE ht