ajax

一、概念:

  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。

原文地址:https://www.cnblogs.com/zy12/p/8693738.html