虽然Ajax在2005年就已经正式开始,术语Ajax一词才有,但它的历史和影响可以追溯到90年代。1999年,微软为它的浏览器推出了一种通过HTTP在后台异步检索数据的方法。
几年后,开发者完善了Ajax的异步能力,使它可以向Web服务器输入,检索结果并输出,而所有这些都无需重新加载页面。
在那个时候,Ajax已经改变了Web应用程序的开发方式,对于开发者来说,Ajax仍然是创新的源泉。
Ajax并不是一种编程语言,而是各种技术的结合体。它的核心是:
Gareth Price说,软件设计师,就职于www.webstandard.com,一家网站开发公司:“以下是你可以平衡利用Ajax能力的五种方式。”
Java可以使开发者向用户呈现最新的数据,而无需他们点击刷新。
例如:Twitter.com feed
当您正在查看tweet(Twitter.com的一个应用),并在同一页面上盯几秒,Twitter使用的Ajax技术会向你发一个小通知,通知有多少新的tweet,而无需刷新界面。而其他脚本工具则要求用户刷新页面,才可以查看任何更新。
可以优化Ajax,把快速的查询结果发送给用户(比如在Google查询时,每当你输入一个字或一个词,Google会在文本框中显示很多类似的搜索词),即使查询只有一个字母或几个字母组成。每次用户按下一个键,可以用Ajax发送查询到服务器,并显示结果。
例如:Google检索工具条
表单仍然是从用户获得详细输入的主要方法,但往往会让用户迷茫。“通过Ajax,你可以实时地呈现数据验证的结果,并突出显示给用户他们输入错误的文本。” Price说。
“桌面应用程序的开发者过去看不起Web应用程序。” Price说。“现在不会了,看看GoogleDocs。”
“多亏Ajax,你不在局限于从你自己的服务器上获得数据,”Price说。“而是从任何让你取的地方获得。”
例如:Google AdSense(GoogleAdSense可以让具有一定访问量的网站成为Google内容发布商。如果一个网站加入Google AdSense,即成为Google的内容发布商,作为内容发布商可以在自己网站上显示Google关键词广告,Google根据会员网站上显示的广告被点击的次数支付佣金。如果你拥有自己的网站并有一定的访问量,就可免费申请加入Google AdSense,无论网站是个人的还是商业的,当然也不是随便加入的)。
顺便说一下,什么是mashup?它是当今网络上新出现的一种现象,将两种以上使用公共或私有的 Web 应用融合在一起,形成的一个新应用程序。mashup在Geek群体和互联网玩家之中获得极大的欢迎,mashup未必需要很高的编程技能,只需熟悉APIs和网络服务的工作方式就能进行开发。很多公司,像Yahoo、Google等都提供开放的接口,来吸引这个群体。那么究竟什么是mashup?假如你是一个Web开发者,通过一个API 找到附近哪些地方有犯罪,然后访问Google地图的APIs,把这两个内容整合起来,那么你就得到了一个标有犯罪地点的地图。这个地图就叫Mashup。
而 widget 是部件,你可以理解为 Control 或是 Component,也就是控件或组件。
Price说,虽然有解决的方法,但页面加载仍然是呈现不同的、静态内容的最好方式。解决书签问题的大部分方案是使用URL片断标识符('#'后的URL的一部分)来追踪处于一个给定状态的应用程序,并允许用户返回它。
那些浏览器不支持JavaScript或XMLHttpRequest,或已禁用此功能的用户将无法正确使用依赖于Ajax的网页。
有些设备,如移动电话、个人数字助理(PDA)和屏幕阅读器,可能缺少Ajax的支持。
解决办法:使用非JavaScript技术。
Price指出的解决方法是“适当调整你的系统,或是在繁忙时限制它。”
一些使用Ajax应用程序的动态页面更新可能会干扰与用户的交互,特别是用户网络链接不稳定时。
该解决方案仅是尝试。
“jQuery可以让你使一次连接一个Ajax,”他说。作为加强用户体验的一种工具,Price说,Ajax创造最好的是用户不会察觉到,他们只知道,你的应用程序很快、健壮、易于使用。