我的第一個(gè)Ajax例程
一、Ajax1.
2.
3.
4.
5.
二、
通常的情況:在我們編寫(xiě)基于MVC
在完成這一整套流程之前,用戶(hù)是不能進(jìn)行其他操作的。用戶(hù)必須等待服務(wù)器正確地返回了響應(yīng)之后,才能進(jìn)行別的操作。
而使用Ajax
那么為什么可以異步的提交請(qǐng)求呢?這就是XMLHttpRequest
三、XMLHttpRequest
這三個(gè)感嘆號(hào)不是隨便打的,用紅色顯示也不是一時(shí)興起。原因只有一個(gè):XMLHttpRequest
眾所周知,類(lèi)是由屬性和方法組成的。下邊就是XHR
readystate:
0
1
2
3
4
status
statusText
常見(jiàn)的狀態(tài)碼和文字:
200
202
400
404
500
responseXML
Web
onreadystatechange
當(dāng)XHR
以上是XHR
open(method,url,asyschronous,user,password);
這是open
如果仔細(xì)看這個(gè)方法的參數(shù)列表的話(huà),可能會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題:參數(shù)缺少數(shù)據(jù)類(lèi)型。如果你夠聰明的話(huà),一定會(huì)想到,這是一個(gè)在javascript
method
url
asyschronous
user
---------------------------------------------------------------------------------------------------------
send(databody);
向服務(wù)器發(fā)送數(shù)據(jù)
databody
如果不需要發(fā)送數(shù)據(jù)的話(huà)直接寫(xiě):null
abort();
取消當(dāng)前請(qǐng)求
以上就是XHR
四、
這是一個(gè)很小的例子。只是說(shuō)明了Ajax
首先,和java
在這,我們使用javascript
function createXHR(){
if(window.ActiveXObject){
XHR = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
XHR = new XMLHttpRequest();
}
}
window.ActiveXObject
window.XMLHttpRequest
這么做的原因是:雖然web
在IE
現(xiàn)在我們得到了一個(gè)XHR
XHR.open("get","someURL",true);
調(diào)用open
XHR.send(null);
調(diào)用send
發(fā)送請(qǐng)求后,就等著服務(wù)器傳回響應(yīng)了。那么我們?cè)趺粗婪?wù)器有沒(méi)有響應(yīng)呢?
//
function handleChange(){
//
if(XHR.readystate==4){
if(XHR.status==200){
//
xmldoc = XHR.responseXML;
//
var un = xmldoc.getElementsByTagName("name")[0].text;
var pass = xmldoc.getElementsByTagName("pass")[0].text;
//
if(document.getElementById("username").value == un){
if(document.getElementById("password").value == pass){
//
document.body.innerHTML = "
}
}
}
}
}
請(qǐng)注意一開(kāi)始的兩個(gè)if
然后就可以開(kāi)始處理響應(yīng)信息。
到這里,整個(gè)Ajax
posted on 2007-12-02 02:49 Fenris 閱讀(655) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): 有關(guān)前臺(tái)