在以下js片段
中request = new XMLHttpRequest
request.open('GET', '/my/url', true)
request.send()
request.onload = function() {
data = JSON.parse(this.response)
}
是否应该在send()之前分配负载以避免竞争条件。或者浏览器是否为您处理(通过在轮到分配时启动加载)。
答案 0 :(得分:1)
您的请求应该更像:
var request = new XMLHttpRequest || new ActiveXObject('Microsoft.XMLHTTP');
request.open('GET', '/my/url');
request.onreadystatechange = function(){
if(request.readyState == 4 && request.status == 200){
console.log(request.responseText);
}
}
request.send();
要进一步回答你的问题,request.send()
最后应该发生,因为如果在将函数分配给request.onreadystatechange
之前回复,则可能会出现问题,尽管回复的可能性很小那很快。