XMLHttpRequest对象属性以及ajax的优缺点
XMLHttpRequest对象有 三个重要的属性:
onreadystatechange 状态改变的事件触发器,每个状态改变时都会触发这个事件处理器
readyState从0到4发生变化
0 =未初始化
1 =正在加载/服务器连接已建立
2 =已加载/请求已接收
3 =交互中/请求处理中
4 =请求完成
status服务器的HT TP状态码:
1字头: 消息。这一类型的状态码,代表请求已被接受,需要继续处理。
2字头:成功。 这一类型的状态码, 代表请求已成功被服务器接收、 理解、并接受。( 200:'OK')
3字头:重定向。这类状态码代表需要客户端采取进一步的操作才能完成请求。( 304:'Not Modified' )
4字头:请求错误。这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理
5、6字头: 服务器错误。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生
Ajax的优点
无刷新更新数据
AJAX最大优点就是能在不刷新整个页面的前提下与服务器通信维护数据。这使得Web应用程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变的信息, 减少用户等待时间, 带来非常好的用户体验。
异步与服务器通信;
AJAX使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。优化了Browser和Server之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。
前端与后端负载平衡
AJAX可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。
并且减轻服务器的负担,AJAX的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能
基于标准被广泛支持:
AJAX基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户允许JavaScript在浏览器.上执行。随着Ajax的成熟, 一些简化Ajax使用方法的程序库也相继问世。同样, 也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。
界面与应用分离:
Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离) 有利于分工合作、减少非技术人员对页面的修改造成的WEB应用程序错误、提高效率、也更加适用于现在
的发布系统。
Ajax的缺点
AJAX干掉了history功能, 即是对浏览器机制的破坏:
在动态更新页面的情况下, 用户无法回到前一个页面状态,因为浏览器仅能记忆历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;
用户通常会希望单击后退按钮能够取消他们的前一次操作,但是在Ajax应用程序中, 这将无法实现。
用过Gmail的知道,Gmail 下面采用的Ajax技术解决了这个问题,在Gmail' 下面是可以后退的,
但是,它也并不能改变Ajax的机制,它只是采用的一个比较笨但是有效的办法,即用户单击后退按钮访问历史记录时,
通过创建或使用一个隐藏的IFRAME来重现页面.上的变更。一个相关的观点认为,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。该问题的解决方案也已出现,大部分都使用URL片断标识符(通 常被称为锚点,即URL中#后面的部分)来保持跟踪,
允许用户回到指定的某个应用程序状态。 (许多浏览器允许JavaScript动态更新锚点,这使得Ajax应用程序能够在更新显示内容的同时更新锚点。)这些解决方案也同时解决了许多关于不支持后退按钮的争论
AJAX的安全问题:
AJAX技术给用户带来很好的用户体验的同时也对IT企业带来了新的安全威胁,Ajax技 术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。
Ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器,上建立新的攻击。还有Ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、SQL注入攻击和基于Credentials的安全漏洞等等。
对搜索引擎支持较弱:
对搜索引擎的支持比较弱。如果使用不当,AJAX会增大网络数据的流量, 从而降低整个系统的性能。
基于标准被广泛支持:
AJAX基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户允许JavaScript在浏览器.上执行。随着Ajax的成熟, 一些简化Ajax使用方法的程序库也相继问世。同样, 也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。
AJAX不能很好支持移动设备:
一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax,比如说我们在手机的浏览器上打开采用Ajax技术的网站时,它目前是不支持的。
客户端过肥,太多客户端代码造成开发上的成本
编写复杂、容易出错;冗余代码比较多(层层包含js文件是AJAX的通病, 再加.上以往的很多服务端代码现在放到了客户端) ;破坏了Web的原有标准。
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
以上就是XMLHttpRequest对象属性以及ajax的优缺点的详细内容,更多请关注其它相关文章!
上一篇: 详解css之背景background属性
下一篇: 怎么解决数据库表空间不足
推荐阅读
-
关于ajax对象一些常用属性、事件和方法大小写比较常见的问题总结
-
解析ajax核心XMLHTTPRequest对象的创建与浏览器的兼容问题
-
js利用for in循环获取 一个对象的所有属性以及值的实例
-
XMLHTTPRequest对象来进行AJAX的异步数据交互
-
原生Ajax的使用(创建XMLHttpRequest对象、发送请求、GET 还是 POST、异步还是同步、处理后台返回的数据)
-
不使用XMLHttpRequest对象实现Ajax效果的方法小结
-
jquery ajax开发中如何使用XMLHttpRequest对象的responseXML
-
【转载】Request对象的作用以及常见属性
-
【转载】Asp.Net中Cookie对象的作用以及常见属性
-
【转载】Response对象的作用以及常用方法属性