一、概念:
AJAX=异步JavaScript和XML(标准通用标记语言的子集),是指一种创建交互式网页应用的网页开发技术。是一种用于创建快速动态网页,在无需加载整个网页的情况下,能够更新部分网页的技术。
二、作用:
无刷新:不刷新整个页面,只刷新局部。
(好处:只更新部分页面,有效利用带宽;提供类似C/S的交互效果,操作更方便。)
三、原理:
简单来说是通过xmlhttprequest对象来向服务器发送异步请求,从服务器获得数据,然后用JavaScript来操作DOM从而更新页面。最关键的一步就是从服务器获得请求数据,要清楚这个过程和原理,我们必须对xmlhttprequest有所了解。
xmlhttprequest是ajax的核心机制,它是在IE5中首先引入的,是一种支持异步请求的技术。简单地、的说,也就是JavaScript可以及时向服务器提出请求和处理响应,而不阻塞用户,达到无刷新的效果。所以先从xmlhttprequest讲起,来看它的工作原理。
首先,先来看看xmlhttprequest这个对象的属性。
它的属性有:
onreadystatechange每次状态改变所触发事件的事件处理程序
responsetext从服务器进程返回数据的字符串形式
responsexml从服务器进程返回的DOM兼容的文档数据对象
status从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)
statustext伴随状态码的字符串信息
readystate对象状态值
0(未初始化)对象已建立,但是尚未初始化(尚未调用open方法)
1(初始化)对象已建立,尚未调用send方法
2(发送数据)send方法已调用,但是当前的状态及http头未知
3(数据传送中)已接收部分数据,因为响应及http头不全,这时通过responsebody和responsetext获取部分数据会出现错误
4(完成)数据接收完毕,此时可以通过responsexml和responsetext获取完整的回应数据
四、优点:
1、无刷新访问服务器,用户体验好;
2、异步与服务端通信,不需要打断用户的操作;
3、减轻服务端压力,充分利用浏览器客户端分担压力。
五、缺点:
1、ajax干掉了back按钮,是对浏览器后退机制的破坏;
2、安全问题。ajax技术就如同对企业数据建立了一个直接通道,这使得开发者在不经意之间会暴露比以前更多的数据和服务器逻辑。ajax的逻辑可以对客户端的安全扫描技术 隐藏起来,允许黑客从远端服务器上建立新的攻击。还有ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击,SQL诸如攻击和基于credentials的安全漏洞等;
3、对搜索引擎的支持比较弱;
4、破坏了程序的异常机制;
5、违背了URL和资源定位的初衷;
6、一些手持设备现阶段还不能很好的支持ajax。