作者:TurboChen
创建日期:2005-5-10
何为Ajax?Ajax不是什么新技术,是Asynchronous JavaScript and XML的简称. 它是javascript和xml等技术应用的结合。具体包括:
DHTML和CSS 使用文档对象模型(Document Object Model)作动态显示和交互 使用XML和XSLT做数据交互和操作 使用XMLHttpRequest进行异步数据接收 使用JavaScript将它们绑定在一起 有了Ajax技术,我们可以在一定程度上实现Rich Internet Client界面。我们来看一个例子。要设计一个Web界面,用户从下拉式列表中选择一个省份,在另一个清单式列表中显示该省份的城市清单。而这些省份所拥有的城市数据是储存在服务器端数据库中的。在没有Ajax之前,用户在浏览器上每选择一次省份,则发生一次表单提交动作,将所选省份通过表单的POST 请求发送到Servlet/jsp,然后服务器又返回另一个Web页面,里面包含该省份的数据。而用户在浏览器中所看到的就是页面被重新刷新了一次,会有明显的界面迟滞效果。
在Ajax技术出现之后,这一切都成为过去。用户看到的几乎是即时刷新的Web界面。后面我们会详细讨论如何在不同浏览器平台上实现这个例子,以及不同浏览器上编写脚本所就注意的事项。
XMLHttpRequest---Ajax的灵魂要在浏览器上实现Ajax应用,需要创建一个XMLHttpRequest脚本对象,我们就是通过此对象来让javascript与服务器进行后台的异步交互,而交互的媒介就是XML.
XMLHttpRequest并不是一个W3C规定的标准技术[1], 所以在不同的浏览器上,创建XMLHttpRequest对象的方式也不一样.
1)var xmlHttp;
2)if (window.XMLHttpRequest)
3){
4)// 创建 Mozilla/FireFox平台的 XMLHttpRequest 对象
5)xmlHttp = new XMLHttpRequest();
6)} else if (window.ActiveXObject)
7){
8)// 创建 IE/Windows 平台的XMLHttp对象
9)xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
10)}
以上代码就创建了XMLHttpRequest脚本对象. 其中第5行是FireFox平台上的创建方式, 我只在FireFox平台上测试过, 由于Firefox是采用Mozilla为内核,理论上也可以在Mozilla上运行.第9行是IE上的创建方式.
所幸的是, 虽然创建方式不一样,但这两种对象所提供的方法和属性几乎是一模一样的,