AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
主要包含了以下几种技术:
1.基于web标准(standards-based presentation)XHTML+CSS的表示;
2.使用 DOM(Document Object Model)进行动态显示及交互;
3.使用 XML 和 XSLT 进行数据交换及相关操作;
4.使用 XMLHttpRequest 进行异步数据查询、检索;
5.使用 JavaScript 将所有的东西绑定在一起。
优点和缺点:
传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。
与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。
Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。
ajax交互过程:
1.客户端事件,调用javascript函数编写事件处理程序
<input type="text" size="16" id="userName" onclick="validate()"/>
2.创建XMLHttpRequest对象
对于Internet Explorer浏览器:
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
由于在不同Internet Explorer浏览器中XMLHTTP版本可能不一致,为了更好的兼容不同版本。
对于Mozilla﹑Netscape﹑Safari等浏览器
xmlhttp_request = new XMLHttpRequest();
3.配置XMLHttpRequest对象
4.XMLHttpRequest对象发送一个异步HTTP请求道服务器
xmlhttp_request.open('GET', URL, true);
xmlhttp_request.send(null);
5.服务器程序(接受请求,处理请求,返回响应)
6.XMLHttpRequest对象调用函数