NINE------XML+JSON+Ajax

211 阅读4分钟

1、什么是JSON和XML?

JSONJavaScript Object Notation 被称作JavaScript 对象表示法,
是一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换

XML:extensiable markup language 被称作可扩展标记语言

2、JSON与XML区别是什么? 有什么共同点
• 共同点:

xml和json都是数据传输的载体,并且具有跨平台跨语言的特性。

• 区别:

XML文件格式复杂,在远程调用时比较占宽带,服务器端与客户端解析xml花费较多的资源和时间.
JSON文件格式压缩,占宽带小  

3、JSON、XML解析有那些方式?

JSON解析方式(阿里巴巴fastjson、谷歌gson,jackJson)

XML解析方式(dom、sax、pul)

4、什么是Ajax ?为什么要使用Ajax

Ajax是“AsynchronousJavaScriptandXML\color{#008000}{Asynchronous-JavaScript-and-XML}:”的缩写[eɪˈsɪŋkrənəs] 。他是指一种创建交互式网页应用的网页开发技术。

是一种客户端与服务器可以在不必刷新整个浏览器的情况下,与服务器进行异步通讯的技术。

5、Ajax应用和传统Web应用有什么不同?

传统的web前端与后端的交互中,浏览器直接访问Tomcat的Servlet来获取数据,
Servlet通过转发把数据发送给浏览器。

当我们使用AJAX之后,浏览器是先把请求发送到XMLHttpRequest异步对象之中,异步对象对请求进行封装,
然后再与发送给服务器。服务器并不是以转发的方式响应,而是以流的方式把数据返回给浏览器

XMLHttpRequest异步对象会不停监听服务器状态的变化,得到服务器返回的数据,就返回到浏览器上,
因为不是转发的方式,所以是无刷新就能够获取服务器端的数据。

6、请介绍一下XMLhttprequest对象

Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器发出请求并处理响应,而不阻塞用户。 通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新

7、Ajax的实现流程是怎样的?

创建XMLHttpRequest对象,也就是创建一个异步调用对象.

创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

设置响应HTTP请求状态变化的函数.

发送HTTP请求.

获取异步调用返回的数据.

使用JavaScript和DOM实现局部刷新

8、Ajax有哪些优点和缺点?

Ajax最大的优点就是能在不刷新整个页面的情况下维持与服务器通信。
使用异步方式与服务器通信,具有更加迅速的响应能力。 

Ajax干掉了Back与History功能,即对浏览器机制的破坏。
在动态更新页面的情况下,用户无法回到前一页的页面状态,因为浏览器仅能记忆历史纪录中的静态页面

9、如何解决跨域问题?

理解跨域的概念:协议、域名、端口都相同才同域,否则都是跨域。

 所以基于这一点,可以动态创建script标签,使用标签的src属性访问js文件的形式获取js脚本,
 并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,
 为了获取这里的参数数据,需要事先在页面中定义回调函数,在回调函数中处理服务器返回的数据,【JSONP】

在后端上配置可跨域【CORS方式】

前端ajax请求的是本地接口,本地接口接收到请求后向实际的接口请求数据,然后再将信息返回给前端【代理方式】

10、Ajax 解决浏览器缓存问题?

1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。

2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。

3、在URL后面加上一个随机数: "fresh=" + Math.random();。

4、在URL后面加上时间戳:"nowtime=" + new Date().getTime();。

5、如果是使用jQuery,直接这样就可以了 $.ajaxSetup({cache:false})。
   这样页面的所有ajax都会执行这条语句就是不需要保存缓存记录。