Мне интересно, может ли кто-нибудь помочь мне понять некоторые асинхронные концепции JavaScript ...
Скажем, я делаю асинхронный вызов 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?
Или браузер ожидает завершения запроса, выполняет асинхронный вызов, а затем выполнение продолжается сразу после открытия?
Спасибо!