我想知道是否有人可以帮助我理解一些异步javascript概念......
说我像这样做一个asynch ajax调用:
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange= myFoo;
xmlhttp.open("GET",url,true);
这是我的回调函数:
function myFoo()
{
if (xmlhttp.readyState==4)
{
if (xmlhttp.status==200)
{
// Success message
}
else
{
// some error message
}
}
}
现在, 执行路径何时何地再次开始?一旦我调用open(),执行是否继续直接在open()下面执行,另一个“线程”在ajax请求完成后进入asynch函数?
或者,浏览器是否等待请求完成,进行Asynch调用,然后在打开后立即继续执行?
谢谢!
答案 0 :(得分:3)
答案 1 :(得分:1)
首先,您缺少xmlhttp.send调用。
浏览器在等待打开后不等待请求完成继续。这就是整个想法与异步调用相悖。