AJAX简单整理
AJAX简介
1、AJAX工作原理:当一个事件发生时,浏览器会创建一个XMLHttpRequest对象,并发送一个HttpRequest给服务器,服务器接收到这个HttpRequest请求后就会进行处理,
处理完成后服务器会创建一个响应程序,并将响应结果返回给浏览器,浏览器接收到响应结果后通过使用JavaScript进行加工处理,最后浏览器更新网页内容。
2、AJAX联合使用的元素
XMLHttpRequest对象:异步的与服务器交换数据
JavaScript/DOM:用于信息显示/交互
CSS:给数据定义样式
XML:作为转换数据的格式
3、创建XMLHttpRequest
IE5、IE6:varxmlhttp=newActiveXObject("Microsoft.XMLHTTP");
其他浏览器:varxmlhttp=newXMLHttpRequest();
实例:
varxmlhttp;
if(window.XMLHttpRequest){
xmlhttp=newXMLHttpRequest();//现代浏览器IE7+、Firefox、Chrome、Safari以及Opera
}eles{
xmlhttp=newActiveXObject("Microsoft.xmlhttp");//IE5、IE6
}
4、XMLHttpRequest对象的方法:open(),send()
xmlhttp.open(method,URL,async)
method:请求的类型;GET或POST
url:文件在服务器上的位置
async:true(异步)或false(同步)
xmlhttp.send(String):将请求发送到服务器,String仅用于POST请求。
注:XMLHttpRequest对象如果要用于AJAX的话,其open()方法的async参数必须设置为true
5、POST和GET的区别
(1)POST一般是需要更新数据时才会用到,而GET一般是获取或查询数据的时候用。
(2)GET请求的数据会附在URL(如login.action?a=1&b=2)之后;POST把提交的数据则放置在是HTTP包的包体中。
(3)GET方式提交的数据最多只能是1024字节,POST提交数据没有大小限制
(4)在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。传一个test.jsp?name=hyddd&password=hyddd,用request.getQueryString()得到的是:name=hyddd&password=hyddd。
(5)POST的安全性要比GET的安全性高
(6)Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET"。
6、Async
当使用async=true时,请规定在响应处于onreadystatechange事件中的就绪状态时执行的函数
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
您使用async=false时,请不要编写onreadystatechange函数-把代码放到send()语句后面即可
xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
注:如果使用async=false,JavaScript会等到服务器响应就绪才继续执行,如果服务器繁忙货缓慢,引用程序就会挂起或停止
7、responseText、responseXML
如果来自服务器的响应并非XML,请使用responseText属性,responseText属性返回字符串形式的响应。
如果来自服务器的响应是XML,而且需要作为XML对象进行解析。
实例:
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for(i=0;i<x.length;i++)
{
txt=txt+x[i].childNodes[0].nodeValue+"<br>";
}
document.getElementById("myDiv").innerHTML=txt;
<CATALOG>
<CD>
<ARTIST>BobDylan</ARTIST>
</CD>
<CD>
<ARTIST>BobDylan</ARTIST>
</CD>
<CD>
<ARTIST>BobDylan</ARTIST>
</CD>
<CD>
<ARTIST>BobDylan</ARTIST>
</CD><CD>
<ARTIST>BobDylan</ARTIST>
</CD>
<CD>
<ARTIST>BobDylan</ARTIST>
</CD>
</CATALOG>
8、XMLHttpRequest对象的三个重要的属性
当请求被发送到服务器时,我们需要执行一些基于响应的任务,每当readyState改变时,就会触发onreadystatechange事件,readyState属性存有XMLHttpRequest的状态信息。
onreadystatechange:存储函数(或函数名),每当readyState属性改变时,就会调用该函数。
readyState:存有XMLHttpRequest的状态。从0到4发生变化。0:请求未初始化;1:服务器连接已建立;2:请求已接收;3:请求处理中;4:请求已完成,且响应已就绪。
status:200:"OK";404:未找到页面
实例:
当readyState等于4且状态为200时,表示响应已就绪
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
相关推荐
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo