Dav*_*mes 10 javascript jquery asynccallback jquery-callback
我在代码库中找到$(document).ready(function() {...}了另一个代码$(document).ready(function() {...}
例如
$(document).ready(function() {
// 20 lines...
$(document).ready(function() {
foo()
}
// 200 lines...
}
function foo() {...}
Run Code Online (Sandbox Code Playgroud)
我想了解执行的顺序,所以我可以安全地重构这个嵌套的回调.外部回调似乎在内部回调执行之前继续执行.外部回调是否保证在内部回调被调用之前完成?
zzz*_*Bov 13
外部回调是否保证在内部回调被调用之前完成?
是.
方法document.ready是在调用回调之前等待readystatechange事件在准备就绪时等待,但是setTimeout如果readystatechange事件已经被触发,它也会运行.
这意味着代码如:
$(function () {
a();
$(b);
c();
});
Run Code Online (Sandbox Code Playgroud)
where a,b和c所有函数将按以下顺序执行:
acb在一个相关的说明中,人们会质疑你为什么要document.ready在另一个document.ready电话中运行一个电话,简短的回答是你不会.
唯一的好处是$(callback)比写入更方便:
setTimeout(callback, 0);
Run Code Online (Sandbox Code Playgroud)