是运用javaScript技术和可扩展语言(xml)实现浏览器与服务器通信的一种技术。实现浏览器与服务器异步交互的技术,用户的请求不需要刷新整个页面,只需要刷新局部页面即可
主要涉及xhtml和css构建标准化的展示层,使用dom进行显示和交互,使用xml和xslt进行数据交换和操作,使用xmlHttpRequest异步获取数据,使用javaScript将所有元素绑定在一起,其中xmlHttpRequest对象是ajax核心技术之一,在ajax中,通过这个对象实现与服务器锻的通信。这个对象由javaScript创建,在不同浏览器中有不同的创建方法,但创建方法后,其使用方法是相同的
1 xmlHttpRequest对象的创建。
为了能成功创建其对象,需要针对不同浏览器创建。
var xmlHttpRequest = null;//声名对象 if(window.XMLHttpReuest){ xmlHttpRequest = new XMLHttpRequest(); } else if(window.ActiveXObject) { try{ xmlHttpRequest = new ActiveXObject(Msxml2.XMLHTTP);//针对ie比较新的版本 }catch (e) { try { xmlHttpRequest = new ActiveXObject(Microsoft.XMLHTTP); }catch(e) {} } }
其对象创建后,就可以对该对象进行各种操作,从而完成与服务器的通信。常用属性和方法如下
1)open(string request-type,string url,Boolean asynch,string name,string password)
用于建立到服务器的连接,其参数含义如下
request-tpe:发送请求的类型。该参数取值为get或post或head方法。要特别注意参数汉字乱码的问题
url:要连接的服务器的url
asynch:若使用异步连接则为true,否则为false。参数可选 默认为true
username:若需要身份验证,则在次指定用户名
password:若需要身份验证,在此指定口令,通常使用前三个方法
2)send(String content)方法 该方法向服务器发送请求。参数content为发送的内容
3)setRequestHeader(string label,string value)该方法在发送请求前,先设置请求头
若在open方法中使用的request-type为“post”,则需要设置请求头
xmlHttpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
4)readState属性 提供当前html就绪状态,用于确定该请求是否开始、是否得到了响应或者请求/响应模型是否已经完成。它还可以帮助确定读取服务器提供的响应文本或数据是否安全。在ajax程序中5中就绪状态如下
0:请求未发出(在调用open之前)
1:请求建立但未发出(调用send之前)
2:请求已经发出正在处理中(通常可以从响应得到内容头部)
3:请求已经处理,响应中有部分数据可用,但是服务器还未完成响应
4:响应完成,可以访问服务器响应并使用它
对于ajax编程,需要直接处理的唯一状态就是就绪状态4,它表示服务器响应已经完成,可以安全地使用响应数据了。
待续。。。