Ajax(Asynchronous JavaScript and XML)是结合了Java技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Java技术的Web应用,并打破了使用页面重载的惯例。
Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。
Ajax与传统的web应用模型比较
传统的网络程序工作流程基本如下:客户在网页上的操作转化为HTTP请求传回服务器,而服务器接受请求以及相关数据、解析数据并将其发送给相应的处理单元后,将返回的数据转成HTML页发还给客户,这种工作流程总会让用户感觉不太舒服,因为当服务器处理数据的时候,用户只能等待。显然用户不喜欢每作一步操作后,都需要等待服务器返回新的网页,用户希望的是顺畅的使用网络程序,甚至感觉不到服务器的存在。
而Ajax软件可以摆脱这种停停走走的网络交互方式,实现的方法是Ajax在客户与服务器之间插入了Ajax engine,在会话开始后,浏览器装载一个Ajax engine,而不是一个网页,Ajax engine是用JavasSript写制的,负责绘制客户看到的界面和与服务器通信,Ajax Engine可以用异步通讯的方式将用户的输入发送给服务器,从而避免用户看着空白的网页等待服务器的响应。用户的操作会调用一个Ajax engine的javascript函数,在以前这通常会触发一个HTTP请求给服务器,所有对用户操作的响应不需要再通过服务器,诸如简单的数据检查、修改数据甚至检索网页,engine都可以处理,如果engine必须要服务器返回数据以响应用户的请求,比如需要服务器处理提交的数据或者装载新的代码或数据等,engine会采用异步通讯的方式发出请求,通常用XML,从而不会影响用户与程序的交互。
Ajax并不只是技术上的构想,而已经在业界得到了应用,Google的很多产品都采用了Ajax技术,例如上面讲到的Google Suggest, Google Map和Google Groups等,随着网络的发展,Ajax一定会被更广泛的使用,运用Ajax开发网络应用的最大挑战并不在于技术,因为其所使用的技术都已经很成熟、稳定和易于理解,对于网络应用开发者来说,最大的挑战在于突破陈旧的思维方式,开始想象一个更加宽广的世界。