多个文档就绪功能(/ w和/ wo回调)

时间:2014-12-10 09:49:44

标签: jquery google-chrome-extension

我正在运行多个函数,我需要准备好文档。我对

的使用有疑问
$(function()
{
    funA();
});

1)以下哪项技术上是正确的:

(a)我推测,因为它的范围仅限于其大括号内的初始函数。

    $(function()
    {
        funA(function()
        {
            $(function()
            {
                funB(function()
                {
                    $(function()
                    {
                        funC();
                    });
                });
            });
        });
    });

VS

(b)我推测,因为它的范围适用于它的括号内的所有函数。

    $(function()
    {
        funA(function()
        {
            funB(function()
            {
                funC();
            });
        });
    });

(c)中

两者(请详细说明)。

2)如果没有使用回调,方法会有所不同吗?

1 个答案:

答案 0 :(得分:1)

我想问题是" $(f);如何运作"。

当调用$(f)(或其完整形式$(document).ready(f))时,jQuery基本上会检查文档是否已经加载。

  1. 如果已加载,f()会立即排队,以便在当前代码完成后执行。
  2. 如果尚未加载,则f 添加到jQuery检测到相应事件时要排队的函数列表。
  3. 因此,将$(f)嵌套在回调中是安全的,但不必要,因为顶级回调只能在事件发生后执行,并且嵌套回调函数不能比它传递的函数更快地执行。


    * - 我说" safe-ish",因为$()的回调从不立即执行但只排队;这可能会导致可能不需要的结果。

    $(f);
    g();
    

    始终会在g()之前执行f()。这不适用于你的问题,但无论如何我都想指出它。