Ajax之家对Ajax的理解和解释
转: godleach
简单说来,我们以前使用的技术,比如说一个留言板,用户提问:什么是ajax,我们要先提交信息到数据库,之后再刷新页面查询出结果,并显示出来。如果使用了ajxa,用户提交留言后,程序兵分两路,一队将什么是ajax的信息插入到数据库,另一队直接操作htnl将什么是ajax直接显示出来,这样做的好处就是,用户不用再等待页面刷新显示,直接就可以看到自己的留言:什么是ajax了,用户体验得到大大提高。
Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功 能强大的新技术。Ajax包括:
XHTML和CSS
使用文档对象模型(Document Object Model)作动态显示和交互
使用XML和XSLT做数据交互和操作
使用XMLHttpRequest进行异步数据接收
使用JavaScript将它们绑定在一起
传统的web应用模型工作起来就象这样:大部分界面上的用户动作触发一个连接到Web服务器 的HTTP请求。服务器完成一些处理—接收数据,处理计算,再访问其它的数据库系统,最后返回一个HTML页面到客户端。这是一个老套的模式,自采用 超文本作为web使用以来,一直都这样用, 但看过《The Elements of User Experience》的读者一定知道,是什么限制了Web界面没有桌面软件那么好用。
图1: 传统Web应用模型(左)与Ajax模型的比较(右).这种旧的途径让我们认识到了许多技术,但它不会产生很好的用户体验。当服务器正在处理自己的 事情的时候,用户在做什么?没错,等待。每一个动作,用户都要等待。很明显,如果我们按桌面程序的思维设计Web应用,我们不愿意让用户总是等待。当界面加载 后,为什么还要让用户每次再花一半的时间从服务取数据?实际上,为什么老是让用户看到程序去服务器取数据呢?下面是真正介绍下什么是ajax通过在用户和服务器之间引入一个Ajax引擎,可以消除Web的开始-停止-开始-停止这样 的交互过程. 它就像增加了一层机制到程序中,使它响应更灵敏,而它的确做到了这一点,你或许已经有点知道什么是ajax了,接着看。
不像加载一个页面一样,在会话的开始,浏览器加载了一个Ajax引擎—采用 JavaScript编写并且通常在一个隐藏frame中。这个引擎负责绘制用户界面以及与服务器端通讯。Ajax引擎允许用异步的方式实现用户与程序的 交互--不用等待服务器的通讯。所以用户再不不用打开一个空白窗口,看到等待光标不断的转,等待服务器完成后再响应。
图 2: 传统Web应用的同步交互过程(上)和Ajax应用的异步交互过程的比较(下)(什么是ajax).
通常要产生一个HTTP请求的用户动作现在通过JavaScript调用Ajax引擎来代 替. 任何用户动作的响应不再要求直接传到服务器—例如简单的数据校验,内存中的数据编辑,甚至一些页面导航—引擎自己就可以处理它. 如果引擎需要从服务器取数据来响应用户动作—假设它提交需要处理的数据,载入另外的界面代码,或者接收新的数据—引擎让这些工作异步进行,通常使 用XML, 不用再担误用户界面的交互,以上就是什么是ajax的解释。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论