這篇文章主要介紹“XMLHttpRequest的open和send方法怎么用”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“XMLHttpRequest的open和send方法怎么用”文章能幫助大家解決問題。
創(chuàng)新互聯(lián)主營靈璧網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā),靈璧h5小程序設(shè)計搭建,靈璧網(wǎng)站營銷推廣歡迎靈璧等地區(qū)企業(yè)咨詢
url - 服務(wù)器上的文件
open() 方法的 url 參數(shù),是服務(wù)器上文件的地址:
xhttp.open("GET", "ajax_test.asp", true);
該文件可以是任何類型的文件,如 .txt 和 .xml,或服務(wù)器腳本文件,如 .asp 和 .php(它們可以在發(fā)送回響應(yīng)之前在服務(wù)器執(zhí)行操作)。
異步 - ture 還是 false?
如需異步發(fā)送請求,open() 方法的 async 參數(shù)必須設(shè)置為 true:
xhttp.open("GET", "ajax_test.asp", true);
發(fā)送異步請求對 web 開發(fā)人員來說是一個巨大的進(jìn)步。服務(wù)器上執(zhí)行的許多任務(wù)都非常耗時。在 AJAX 之前,此操作可能會導(dǎo)致應(yīng)用程序掛起或停止。
通過異步發(fā)送,JavaScript 不必等待服務(wù)器響應(yīng),而是可以:
在等待服務(wù)器響應(yīng)時執(zhí)行其他腳本
當(dāng)響應(yīng)就緒時處理響應(yīng)
onreadystatechange 屬性
通過 XMLHttpRequest 對象,您可以定義當(dāng)請求接收到應(yīng)答時所執(zhí)行的函數(shù)。
這個函數(shù)是在 XMLHttpResponse 對象的 onreadystatechange 屬性中定義的:
實例
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
您將在稍后的章節(jié)學(xué)到更多有關(guān) onreadystatechange 的知識。
同步請求
如需執(zhí)行同步的請求,請把 open() 方法中的第三個參數(shù)設(shè)置為 false:
xhttp.open("GET", "ajax_info.txt", false);
有時 async = false 用于快速測試。你也會在更老的 JavaScript 代碼中看到同步請求。
由于代碼將等待服務(wù)器完成,所以不需要 onreadystatechange 函數(shù):
實例
xhttp.open("GET", "ajax_info.txt", false);
xhttp.send();
document.getElementById("demo").innerHTML = xhttp.responseText;
我們不推薦同步的 XMLHttpRequest (async = false),因為 JavaScript 將停止執(zhí)行直到服務(wù)器響應(yīng)就緒。如果服務(wù)器繁忙或緩慢,應(yīng)用程序?qū)炱鸹蛲V埂?/p>
同步 XMLHttpRequest 正在從 Web 標(biāo)準(zhǔn)中移除,但是這個過程可能需要很多年。
現(xiàn)代開發(fā)工具被鼓勵對使用同步請求做出警告,并且當(dāng)這種情況發(fā)生時,可能會拋出 InvalidAccessError 異常。
關(guān)于“XMLHttpRequest的open和send方法怎么用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。