【发布时间】:2011-07-19 13:54:09
【问题描述】:
我在理解异步和同步 Javascript 之间的区别时遇到了一些麻烦,希望有人能对此有所了解。
我知道 Javascript 本质上是同步的,但您可以使用异步事件/回调来改变您的程序流程。但是,如果你调用一个没有包含 AJAX 回调的函数会发生什么?
例如,如果我有以下代码,其中foo() 包含某种服务器查询,foobar() 包含一些输出文本:
foo();
foobar();
会在foo()中的内部逻辑完成之前调用foobar(),还是浏览器会等到foo()完全执行后再调用foobar()? (这看起来很简单,但我的困惑来自于回调,以及它们是否在所有情况下都是绝对必要的,以控制您的程序流,即是否始终需要 foo(foobar)。)
另外,如果foo() 包含一个在客户端快速执行但在服务器上需要很长时间来处理的服务器调用,那么回调是我可以让我的程序等到foo() 完全完成的唯一方法执行完成了吗?
【问题讨论】:
标签: javascript ajax asynchronous dom-events synchronous