AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML),是指一种创立交互式网页应用的网页开发技术。
Ajax(Asynchronous JavaScript + XML)的定义
基于web标准(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)进行动态预示及交互;
使用 XML 和 XSLT 进行数据交换及相干操作;
使用 XMLHttpRequest 进行异步数据查询、检索;
使用 JavaScript 将所有的工具绑定在一起。
AJAX应用可以仅向办事器发送并取回必需的数据,它使用SOAP或其他一些基于XML的web service接口,并在客户端采用JavaScript处理来自办事器的响应。因为在办事器和浏览器之间交换的数据大量减少,结果咱们就能瞥见响应更快 的应用。同时很多的处理工作可以在发出请求的客户端呆板上完成,所以Web办事器的处理时间也减少了。
Ajax的核心是JavaScript对象XmlHttpRequest.
Ajax的工作原理相当于在用户和办事器之间加了-个中心层,使用户操作与办事器响应异步化。这样把以前的一些办事器承担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减缓办事器和带宽的承担,从而达到节约ISP的空间及带宽租用成本的目的。
Ajax应用程序的优势在于:
1. 经由过程异步标准样式,提升了用户体验
2. 优化了浏览器和办事器之间的传道输送,减少不须要的数据往返,减少了带宽占用
3. Ajax引擎在客户端运行,承担了一部门原来由办事器承担的工作,从而减少了大用户量下的办事器负载。
例子:
<script language="JavaScript">
var req = null;
function test() {
var province = document.all("province").value;
req = new ActiveXObject("Microsoft.XMLHTTP");
//配置属性,当后台处理完成后,回来调用myDeal要领。
req.onreadystatechange = myDeal;
//发出请求
req.open("GET", "c.jsp?province=" + province, "false");
req.send(null);
}
function myDeal() {
if (req.readyState == 4) {
//接收办事端归回的数据
var ret = req.responseText;
//处理数据
var obj = document.all("city");
for (var i = obj.options.length - 1; i >= 0; i--) {
obj.options.remove(i); //从后往前删除
}
var ops = ret.split("|");
for (var i = 0; i < ops.length; i++) {
var op = ops[i];
var ss = op.split(",");
var oOption = document.createElement("OPTION"); //创立一个OPTION节点
obj.options.add(oOption); //将节点加入city选项中
oOption.innerText = ss[1]; //配置选择展览的信息
oOption.value = ss[0]; //配置选项的值
}
}
}
</script>
XMLHttpRequest 要领:
1.abort() 停止当前请求。
2.getAllResponseHeaders() 把Http请求的所有响应首部作为键值对归回
3.getResponseHeader("header") 归回指定的首部的串值
4.open("method","url") 成立对办事器的调用,method参数可以是GET,POST,PUT, url是相对url或者绝 对url。还有3个参数可选的,bool(true表示是异步的,与之相反是同步的),最后二个参数是指特别指定的用户名和密码。
5.send(content) 向办事器发送请求 如果请求是异步的,则这个要领就会立即归回,否则它会等待接受到
直至接受到响应为止,参数会被当作请求体的一部门一起发送
6. setResquestHeader("header","value")把指定首部设定为所提供的值,在配置任何首部之前必需先调用open() 第一个参数表示要配置的首部,第二个参数辨识要在首部中放的值。
xmlHttpResquest 属性
1.onreadystatechange 每一个状态改变时城市被触动引发这个事件处理器,通常会调用一个JavaScript
2.readyState 请求状态0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成
3.responseText 办事器的响应,表示一个串
4.responseXML办事器的响应,表示为xml,这个对象可以解析为一个DOM对象
5.status 办事器的状态码(200 为ok 404 未找到)
6.statusText HTTP状态码的相应文本