【问题标题】:How do ansynchronous methods work异步方法如何工作
【发布时间】:2010-03-31 22:35:44
【问题描述】:

我想知道是否有人可以帮助我理解一些异步 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 请求后,另一个“线程”会进入异步函数吗?

或者,浏览器是否等待请求完成,进行异步调用,然后在打开后立即继续执行?

谢谢!

【问题讨论】:

标签: javascript ajax asynchronous


【解决方案1】:

首先,您缺少一个 xmlhttp.send 调用。

打开后浏览器不等待请求完成继续。这就是异步调用的全部想法。

【讨论】:

  • 是的,我意识到......我想这对我来说在其他语言中更有意义,因为异步调用通常作为另一个线程进入......所以我猜我们有多线程 javascript?跨度>
  • 不,JavaScript 不是多线程的。工人 API 是一个允许弯曲规则的最新添加,但它相当新。要了解响应返回时会发生什么,请阅读此链接:javascriptkata.com/2007/06/12/…
  • 我显然对异步方式不太熟悉,哈哈……谢谢你的链接
猜你喜欢
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
相关资源
最近更新 更多