无论是技术面试还是平时的开发工作,ajax几乎是绕不过去的一个话题,是前端开发必须熟知并且能够熟练使用的技术。下面就从ajax的工作原理以及优缺点两个大的方面谈谈ajax;
1.Ajax,是Asynchronous Javascript + XML的简写,它能够像服务器请求额外的数据而无需卸载页面,会大大提升用户体验。也可以用简单通俗的话叫做“局部刷新”;Ajax 的 核心是XMLHttpRequest对象(简称XHR),是由微软首先引入的一个对象,其他浏览器都来也都提供了相同的实现。另外,虽然名称中含有XML,但实际上Ajax通信与数据格式无关。这种技术就是无需刷新页面即可从服务器取得数据,但不一定是XML数据;
2.ajax的工作原理:可以理解为是在用户和服务器之间加了一层Ajax引擎,这使得用户操作与服务器响应异步化。但需要注意的是,并非所有的用户请求都提交给服务器,类似数据校验等都是ajax引擎自行完成,只有当需要从服务器读取数据时间,才再由ajax引擎代为向服务器提交请求。ajax的核心组成部分有javascript、XMLHttpRequest、DOM,通过XHR对象向S端发送异步请求来获取数据,然后用js操作DOM进行页面的更新;
3.ajax的优缺点:
(1)优点:<a>AJAX最大优点就是能在不刷新整个页面的前提下与服务器通信维护数据。这使得Web应用程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变的信息,减少用户等待时间,带来非常好的用户体验。<b>AJAX使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。优化了Browser和Server之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。
(2)缺点:<a>在动态更新页面的情况下,用户无法回到前一个页面状态,因为浏览器仅能记忆历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常会希望单击后退按钮能够取消他们的前一次操作,但是在Ajax应用程序中,这将无法实现。后退按钮是一个标准的web站点的重要功能,但是它没法和js进行很好的合作。这是Ajax所带来的一个比较严重的问题;<b>AJAX技术给用户带来很好的用户体验的同时也对IT企业带来了新的安全威胁,Ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。Ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有Ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、SQL注入攻击和基于Credentials的安全漏洞等等。另外,对搜索引擎的支持比较弱。如果使用不当,AJAX会增大网络数据的流量,从而降低整个系统的性能。