简介:
Ajax不只是一个特定的技术,更应算是一种技巧,不过前面提到的JavaScript是其主要组件。
优点:
Ajax的核心关键在于,因特网默认的请求/响应模式有了重大转变。可以自由地与服务器异步交互,完成许多原本只能在胖客户上完成的任务。
缺点:
1、浏览器兼容性差异。因为浏览器提供不同的方式支持XMLHttpRequest,必须花费大量的精力编码以兼顾各个浏览器之间的差别。
2、破坏浏览器的部分正常功能。不同于IFRAME和隐藏框架,通过XHR作出请求不会修改浏览器的历史栈(后退键功能丧失了)。其实,与其他基于浏览器的方法不同,Ajax不会修改地址栏中显示的链接,这表明不能轻松地为一个页面建立标签,或者向朋友发送一个链接。对于许多应用来说,可能没有这个要求,但是如果你的网站专门为人提供行车路线之类的东西,就要针对这个问题提供一个解决方案。(可以通过一定的方法例如添加锚点来使得用户可以继续使用“前进后退”按钮,但相对于传统方式麻烦了许多)。
3、不要过度是用Ajax。实现Ajax需要编写更多的JavaScript代码,如果有数千行的代码,加载这些代码并在客户端的浏览器上运行,可能会让用户感觉速度太慢。如果脚本编写不当,就会很快失去控制,特别是通信量增加时。
4、Ajax允许异步操作,这个最大的优点同时也是它最突出的缺点。
5、在收发数据量少的时候更有优势。Ajax对应某一个事件发送一个HTTP请求。假如需要刷新的数据差不多等于原先页面大小的时候,此时就要加载比原先更多的js代码,发送更多的HTTP请求。假如用Ajax收发相同的数据量是比传统方式要慢的,只有在小数据量的时候才有优势,不需要刷新这个页面。停留时间少且刷新次数高的页面就不宜使用Ajax。
6、不利于搜索引擎简历索引。要想搜索引擎建立索引,必要条件就是网页捕获器能顺利捕获真正有用的内容。而异步的网页通常必须经过用户的单击后内容才会着改变,而且这些改变都是有JavaScript触发,但是在搜索引擎中要运算JavaScript是非常耗资源的,所以此类的异步网页设计不利于搜索引擎建立索引。
(跨域产生的安全性问题由于本人水平有限,暂时无法更新!)