跨域

概念

Ajax

Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术。
用于异步地去获取XML作为数据交换的格式,当然,现在的 ajax 并不仅仅局限于XML作为数据交换格式,还可以像纯文本、XML、HTML、JSON 等格式均可。

特点

  1. 使用脚本操纵HTTP和Web服务器进行数据交换,不会导致页面重载。

  2. 避免页面重载(这是Web初期的标准做法)的能力使Web应用感觉更像传统的桌面应用。

  3. Web应用可以使用Ajax技术把用户的交互数据记录到服务器中;也可以开始只显示简单页面,之后按需加载额外的数据和页面组件来提升应用的启动时间。

异步原理

Ajax 的 A 就是 asynchronous 的简写,表示异步。

同步和异步:

同步,按照代码书写的顺序,一个任务一个任务的来执行。
异步,并不是按照代码书写的顺序,通常会结合回调和事件来执行相应代码。

在同步中,如果有一个任务耗时较长,整个的后面任务都需要等待。
在异步中,可以将耗时较长先放起来,执行其他的,其他的执行完毕,回头再执行这个。

同步:提交请求->等待服务器处理->处理完毕返回 阻塞模式。
异步:请求通过事件触发->服务器处理->处理完毕。非阻塞模式。

目的

为什么需要Ajax

首先,我们都了解软件的两种架构形态,C/S(Client/Server)和B/S(Browser/Server)。它们的区别如下:

C/S,在客户端安装了客户端软件之后,整个程序的运行,分担到客户端和服务器端。用户在操作的时候,体验更好,响应速度非常快。

B/S,所务的服务都放在服务器端,通过浏览器使用服务器,用户在操作的时候,体验不太好,响应速度特别慢。

B/S的好处,就是不需要安装客户端,软件维护和更新比较方便,用户体验不好。

C/S的好处,用户体验够好,响应及时,但是软件的维护和更新比较麻烦。

随着互联网的发展,越来越多的C/S应用慢慢 转成的B/S,这也是未来的趋势。但是矛盾很突出,B/S的响应速度慢。需要B/S模式具备C/S模式的快速响应特点。
Ajax的出现就是为了解决这个问题-----异步刷新。
在异步刷新机制,整个页面不用跳转,只需要更新需要变化的地方。