002_XMLHttpRequest对象
1. XMLHttpRequest對象
1.1.?XMLHttpRequest是Ajax的基礎(chǔ)。XMLHttpRequest對象用于和服務(wù)器交換數(shù)據(jù)。
1.2.?XMLHttpRequest對象方法
1.3.?XMLHttpRequest對象屬性
2. 創(chuàng)建XMLHttpRequest對象
2.1. 所有現(xiàn)代瀏覽器均支持XMLHttpRequest對象。
2.2. 創(chuàng)建XMLHttpRequest對象的語法:
var xmlHttp = new XMLHttpRequest();3. 向服務(wù)器發(fā)送請求
3.1. 如需將請求發(fā)送到服務(wù)器, 我們使用XMLHttpRequest對象的open()和send()方法:
xmlhttp.open("GET","register.action",true); xmlhttp.send();3.2. open 和 send方法描述
4. GET請求
4.1. 一個簡單的GET請求:
xmlhttp.open("GET","register.action",true); xmlhttp.send();4.2. 在上面的例子中, 您可能得到的是緩存的結(jié)果(GET請求有緩存)。為了避免這種情況, 請向URL添加一個唯一的Id:
xmlhttp.open("GET","register.action?t=" + Math.random(),true); xmlhttp.send();4.3. 如果您希望通過GET方法發(fā)送信息, 請向URL添加信息:
xmlhttp.open("GET","register.action?name=zs&pwd=123",true); xmlhttp.send();5. POST請求
5.1. 一個簡單POST請求:
xmlhttp.open("POST","register.action",true); xmlhttp.send();5.2. 如果需要像html表單那樣POST數(shù)據(jù), 請使用setRequestHeader()來添加HTTP頭。然后在send()方法中規(guī)定您希望發(fā)送的數(shù)據(jù):
xmlhttp.open("POST","register.action",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("name=zs&pwd=123");6. url - 服務(wù)器上的地址
6.1. open()方法的url參數(shù)是服務(wù)器上的地址:
xmlhttp.open("GET","register.action",true);7. 異步 - True 或 False?
7.1. Ajax指的是異步JavaScript和XML(Asynchronous JavaScript and XML)。
7.2. XMLHttpRequest對象如果要用于Ajax的話, 其open()方法的async參數(shù)必須設(shè)置為true:
xmlhttp.open("GET","register.action",true);7.3. 對于web開發(fā)人員來說, 發(fā)送異步請求是一個巨大的進步。很多在服務(wù)器執(zhí)行的任務(wù)都相當費時。Ajax出現(xiàn)之前, 這可能會引起應(yīng)用程序掛起或停止。
7.4. 通過Ajax, JavaScript無需等待服務(wù)器的響應(yīng), 而是:
7.4.1. 在等待服務(wù)器響應(yīng)時執(zhí)行其他腳本。
7.4.2. 當響應(yīng)就緒后對響應(yīng)進行處理。
8. Async = true
8.1. 當使用async=true時, 請規(guī)定在響應(yīng)處于onreadystatechange事件中的就緒狀態(tài)時執(zhí)行的函數(shù):
xmlhttp.onreadystatechange=function() {if (xmlhttp.readyState==4 && xmlhttp.status==200){document.getElementById("myDiv").innerHTML=xmlhttp.responseText;} } xmlhttp.open("GET","test1.txt",true); xmlhttp.send();9. Async = false
9.1. 如需使用async=false, 請將open()方法中的第三個參數(shù)改為false:
xmlhttp.open("GET","test1.txt",false);9.2. 我們不推薦使用async=false, 但是對于一些小型的請求, 也是可以的。
9.3. 如果async=false, JavaScript會等到服務(wù)器響應(yīng)就緒才繼續(xù)執(zhí)行。如果服務(wù)器繁忙或緩慢, 應(yīng)用程序會掛起或停止。這就是同步的結(jié)果。
9.4. 當您使用async=false時, 請不要編寫onreadystatechange函數(shù), 把要編寫的代碼放到send()語句后面即可:
xmlhttp.open("GET","test1.txt",false); xmlhttp.send(); document.getElementById("myDiv").innerHTML=xmlhttp.responseText;總結(jié)
以上是生活随笔為你收集整理的002_XMLHttpRequest对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 001_Ajax简介
- 下一篇: 003_onreadystatechan