關(guān)于request. send()求助?
我在JavaScript? Dom 編程藝術(shù)(第二版)中看到request. send()是用在onreadystatechange函數(shù)后的,而這里的第四個(gè)視頻中老師放在了前面。
求解?個(gè)人傾向于書中的用法,不是應(yīng)該在處理了onreadystatechange 函數(shù)后再發(fā)送請(qǐng)求嗎?
謝謝。
我在JavaScript? Dom 編程藝術(shù)(第二版)中看到request. send()是用在onreadystatechange函數(shù)后的,而這里的第四個(gè)視頻中老師放在了前面。
求解?個(gè)人傾向于書中的用法,不是應(yīng)該在處理了onreadystatechange 函數(shù)后再發(fā)送請(qǐng)求嗎?
謝謝。
2017-10-17
舉報(bào)
2019-12-16
let xhr=new XMLHttpRequest();
xhr.open('get','http://httpbin/get',true);
xhr.setRequestHeader("Content-Type","applaction/x-www-form-urlencoded");
xhr.onreadystatechange=()={
if(xhr.readyState==4&&xhr.status==200){
.....
}
}
一般都是這個(gè)順序的吧。我看其他的教學(xué)視頻上說
2018-06-27
一般來說,放前放后是沒有問題的,不過我也在另一本書《高級(jí)程序設(shè)計(jì)》中看到過,說是最好將onreadystatechange事件函數(shù)放在open()和send()之前,原因是為了保證跨瀏覽器兼容。具體有什么兼容問題,書中沒說。
2017-11-13
open()和send()是客戶端向服務(wù)器端請(qǐng)求階段,statu是服務(wù)器響應(yīng)給客戶端的狀態(tài)碼(狀態(tài)碼有5種,200就代表服務(wù)器響應(yīng)成功了)。onreadystatechange函數(shù)是沒當(dāng)readystate改變時(shí)都會(huì)觸發(fā)一次,當(dāng)readystate=4且statu=200時(shí)證明服務(wù)器響應(yīng)成功了。readystate就是請(qǐng)求階段就包含五個(gè)狀態(tài)(0,1,2,3,4),而open()和send()就是在這幾個(gè)狀態(tài)之中的,然后onreadystatechange函數(shù)不用關(guān)心客戶端是否已經(jīng)完成,只要readystate=4,state=200就可以用responsetext/responseXML獲取到服務(wù)器響應(yīng)的數(shù)據(jù)就行了,所以open()和send()并不用放到onreadystatechange函數(shù)中去。這是我的個(gè)人理解,如有錯(cuò)誤歡迎指出。
2017-10-24
send是異步執(zhí)行的,可以放在前面,可以百度看下JavaScript的事件循環(huán)
2017-10-17
糾正問題: 是第二章第五個(gè)視頻4分鐘后。