异步/同步Javascript
作者:互联网
我在理解异步和同步Javascript之间的区别时遇到了一些麻烦,并且希望有人可以对此有所了解.
我知道Javascript本质上是同步的,但您可以使用异步事件/回调来改变您的程序流.但是,如果调用没有包含AJAX的回调的函数会发生什么?
例如,如果我有以下代码,其中foo()包含某种服务器查询,foobar()包含一些输出文本:
foo();
foobar();
在foo()中的内部逻辑完成之前是否会调用foobar(),或者在调用foobar()之前浏览器是否会等到foo()完全执行? (这看起来很简单,但是我的混淆来自于回调以及它们是否在所有情况下都是绝对必要的,以控制你的程序流程,即如果foo(foobar)总是必要的话.)
另外,如果foo()包含一个在客户端快速执行但在服务器上需要很长时间才能处理的服务器调用,那么回调是我可以让程序等到foo()完全执行的唯一方法吗?
解决方法:
在foo()中的Ajax调用完成之前,确实会调用foobar()…
除非,这是第二个问题的答案,否则指定Ajax调用应该是同步的,这是一个选项.这样做会强制用户等到呼叫完成后再做任何事情,这通常不是最好的选择.使用回调通常是最好的方法.
标签:javascript,ajax,asynchronous,javascript-events,synchronous 来源: https://codeday.me/bug/20190610/1210259.html