使用AJAX实现更好的Web-App界面

构建Web应用程序的一种新方法承诺为用户提供更丰富的体验。

二五年十一月三十日

构建Web应用程序的一种新方法承诺为用户提供更丰富的体验。

作为典型Web应用程序基础的技术(HTML和HTTP)是直接的——但是它们的简单性是有代价的。由于普通HTML页面不维护与服务器的连接,因此开发人员很难构建包含动态数据的交互式、响应式用户界面。Java和Flash允许将applet嵌入到网页中,但applet经常会让用户感到困惑或烦恼,因为它们会修改通常的浏览器行为。微软的数据绑定控件可以与服务器通信,但许多开发人员不愿意接受专有扩展。

幸运的是,聪明的开发人员已经想出了在Web应用程序中构建更丰富交互性的替代方案。这些技术越来越多地被归类为AJAX:异步JavaScript和XML。AJAX与其说是一种特定的产品或技术,不如说是一个描述经常一起应用的技术的松散集合的流行词。有些人将这种方法简单地称为DHTML(动态HTML)。

AJAX这个术语是由用户体验咨询公司Adaptive Path的Jesse James Garrett创造的,作为一种描述使Web应用程序能够与服务器进行异步交互的技术的简写方式,它迅速流行起来。您可以在谷歌Maps()等网站上看到AJAX技术的应用。maps.google.com).

这些和其他AJAX应用程序的关键特性可以用首字母缩略词的第一个A来描述:异步。在AJAX应用程序中,服务器发送给Web浏览器的HTML不仅包含页面的可见内容,还包含大量更活跃的客户端代码。当页面可见时,此代码在后台运行,并与服务器进行异步通信。像按下一个键或单击鼠标按钮这样的事件会导致代码向服务器发送更多的数据,它可以在收到数据后立即将这些数据转移到当前显示的页面中,而无需重新加载整个页面。

这种交互在很大程度上没有出现在Web上。加载Web页面的通常事件顺序从浏览器向服务器发送检索URL的请求开始;服务器响应内容,通常是HTML或组成图像的字节。浏览器呈现该文本或图像,服务器的工作完成,直到浏览器提交新的请求。然后服务器再次响应,浏览器重新加载整个页面。用户不仅可以看到整个页面的刷新,而且在客户机和服务器交换数据时还会出现明显的延迟。

AJAX的好处对用户来说是最明显的,他们可以从Web应用程序体验到更加无缝的响应,而无需放弃服务器的全面数据存储和查询功能。除了目前可用的表单自动完成和对提交的无刷新响应等功能之外,很容易想象实时服务器交互可能被证明有价值的其他场景:拼写检查和更正、数据验证以及复杂产品配置器的动态价格计算,等等。AJAX解决方案可以将按需数据检索与预测缓存技术结合起来,以最大限度地提高感知性能。如果编写得当,AJAX应用程序可以保留用户期望的浏览器行为,比如使用Back按钮的能力。(书签一个ajax交付的页面通常需要一个显式链接,因为起始页面的URL不能反映整个应用程序的状态。)

AJAX对开发人员有吸引力,因为它是非专有的,并且利用了熟悉的技术。也就是说,构建AJAX应用程序可能需要大量的工作和测试。尽管Java-Script XMLHttpRequest对象可以抽象出许多客户机到服务器的通信,但是支持AJAX功能并不像在Web页面中嵌入标准HTML表单控件那样简单。此外,大规模地编写、调试和维护JavaScript代码可能是一个挑战。

从头开始开发AJAX驱动的应用程序是可能的,但是您可以通过转向具有AJAX支持的应用程序框架来加速该过程,例如Ruby on Rails (www.rubyonrails.org)或Echo2 (www.nextapp.com/products/echo2).还有“Atlas”,一组类似ajax的ASP扩展。NET 2.0,微软在2005年9月的专业开发者大会上介绍了它。

迄今为止,大多数Web应用程序都缺乏GUI软件所能提供的响应性和交互性。采用类ajax技术可以很好地帮助缩小这一差距,致力于交付现代界面的Web开发人员将希望探索它能为他们和他们的用户做些什么。


本文作者约翰·克莱曼是技术咨询公司Narrative Logic的总裁,也是《。》杂志的特约编辑个人电脑杂志。
Baidu
map