如果您完全不熟悉AJAX(代表异步Java语言和XML),那么维基百科上的AJAX条目就是一个不错的起点:
像DHTML和LAMP一样,AJAX本身并不是一项技术,而是一组技术。AJAX使用以下组合:
- HTML和CSS,用于标记和样式化信息。
- 使用JavaScript访问的DOM可动态显示和与呈现的信息进行交互。
- 一种在浏览器和服务器之间异步交换数据,从而避免页面重新加载的方法。通常使用XMLHttpRequest(XHR)对象,但有时使用IFrame对象或动态添加的标签代替。
- 发送到浏览器的数据格式。常见格式包括XML,预格式化的HTML,纯文本和JavaScript对象表示法(JSON)。可以通过某种形式的服务器端脚本动态创建此数据。
如您所见,从纯技术角度看,这里没有什么新鲜的东西。1994年,大多数AJAX部件已经存在(1999年为XMLHttpRequest
对象)。真正的新颖之处在于将这些部分一起使用,就像Google在GMail(2004)和Google Maps(2005)中所做的那样。实际上,这两个站点都为AJAX的推广做出了巨大贡献。
一幅价值一千个字的图片,在说明客户端和远程服务器之间的通信的图表下,以及传统版本和AJAX驱动的应用程序之间的区别:
对于橙色部分,您可以手动执行所有操作(使用XMLHttpRequest
对象),也可以使用著名的JavaScript库(如jQuery,Prototype,YUI等)来“ AJAXify”应用程序的客户端。这样的库旨在隐藏JavaScript开发的复杂性(例如,跨浏览器的兼容性),但对于简单的功能而言可能会显得过时。
在服务器端,某些框架也可以提供帮助(例如,如果使用Java,则为DWR或RAJAX),但是您所需要做的基本上是公开仅返回所需信息以部分更新页面的服务(最初是XML) / XHTML-AJAX中的X-但如今,JSON通常是首选。