Ajax 的优势
1. 不需要插件支持
Ajax 不需要任何浏览器插件,就可以被绝大多数主流浏览器所支持,用户只需要允许 JavaScript 在浏览器上执行即可。
2. 优秀的用户体验
这是 Ajax 技术的最大优点,能在不刷新整个页面的前提下更新数据,这使得 Web 应用程序能更为迅速地回应用户的操作。
3. 提高 Web 程序的性能
与传统模式相比, Ajax 模式在性能上的最大区别就在于传输数据的方式,在传统模式中,数据提交是通过表单(Form) 来实现的,而数据获取是靠全页面刷新来重新获取整页的内容。Ajax 模式只是通过 XMLHttpRequest 对象向服务器端提交希望提交的数据,即按需发送。
4. 减轻服务器和带宽的负担
Ajax 的工作原理相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化。它在客户端创建 Ajax 引擎,把传统方式下的一些服务器负担的工作转移到客户端,便于客户端资源来处理,减轻服务器和带宽的负担。
Ajax 的不足
1.浏览器对 XMLHttpRequest 对象的支持度不足
Ajax 的不足之一首先来自于浏览器 。Internet Explorer 在5.0及以后的版本才支持 XMLHttpRequest 对象(现阶段大部分客户端上的 IE 浏览器是 IE6 及以上), Mozilla 、 Netscape 等浏览器支持 XMLHttpRequest 则更在其后。为了使得 Ajax 应用能在各个浏览器中正常运行,程序员必须花费大量的精力编码以兼顾各个浏览器之间的差别,来让 Ajax 应用能够很好地兼容各个浏览器。这使得 Ajax 开发的难度比普通的 Web 开发高出很多,许多程序员因此对 Ajax 望而生畏。
2.破坏浏览器"前进"、"后退"按钮的正常功能
在传统的网页中,用户经常会习惯性的使用浏览器自带的"前进"和"后退"按钮,然而 Ajax改变了此 Web 浏览习惯。在 Ajax 中"前进"和"后退"按钮的功能都会失效,虽然可以通过一定的方法(添加锚点)来使得用户可以使用"前进"和"后退"按钮,但相对于传统的方式却麻烦了很多,对于大多数程序员来说宁可放弃前进、后退的功能,也不愿意在繁琐的逻辑中去处理该问题。然而,对于用户来说,他们经常会碰到这种情况,当单击一个按钮触发一个 Ajax 交互后又觉得不想这样做,接着就去习惯性地单击"后退"按钮,结果发生了最不愿意看到的结果,浏览器后退到了先前的一个页面,通过 Ajax 交互得到的内容完全消失了 。
3.对搜索引擎的支持的不足
对于搜索引擎的支持也是 Ajax 的一项缺憾。通常搜索引擎都是通过爬虫程序来对互联网上的数以亿计的海量数据来进行搜索整理的,然而爬虫程序现在还不能理解那些奇怪的 JavaScript 代码和因此引起的页面内容的变化,这使得应用 Ajax 的站点在网络推广上相对于传统站点明显处于劣势。
4.开发和调试工具的缺乏
JavaScript 是 Ajax 的重要组成部分,在目前,由于缺少很好的 JavaScript 开发和调试工具,使很多 Web 开发者对 JavaScript 望而生畏,这对于编写 Ajax 代码就更加困难了。同时,目前许多 Web 开发者已经习惯使用可视化的工具,对亲自动手编写代码有畏惧感,这也在一定程度上影响了大家对 Ajax 的应用。
Ajax 的核心是 XMLHttpRequest 对象,它是 Ajax 实现的关键——发送异步请求、接收响应及执行回调都是通过它来完成的。