gpt4 book ai didi

javascript - $(document).ready 里面 $(document).ready

转载 作者:可可西里 更新时间:2023-11-01 02:38:37 26 4
gpt4 key购买 nike

我在我的代码库中发现代码在另一个 $(document).ready(function() { ...

例如

$(document).ready(function() {      

// 20 lines...

$(document).ready(function() {
foo()
}

// 200 lines...
}

function foo() {...}

我想了解执行顺序,以便我可以安全地重构这个嵌套回调。外部回调似乎在内部回调执行之前继续执行。是否保证在调用内部回调之前完成外部回调?

最佳答案

Is the outer callback guaranteed to finish before the inner callback gets called?

是的。

document.ready 的工作方式是它会等待 readystatechange 事件在回调被调用之前触发准备就绪,但是它也会运行 setTimeout 如果readystatechange 事件已经触发。

这意味着代码如:

$(function () {
a();
$(b);
c();
});

其中abc都是函数,会按照以下顺序执行:

  1. 一个
  2. c
  3. b

在相关说明中,人们会质疑为什么您想要在另一个document.ready 调用中运行一个document.ready 调用,简短的回答是你不会。

唯一的好处是 $(callback) 写起来比:

setTimeout(callback, 0);

关于javascript - $(document).ready 里面 $(document).ready,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22414842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com