【问题标题】:jQuery - is it bad to have multiple $(document).ready(function() {});jQuery - 有多个 $(document).ready(function() {}); 是不是很糟糕
【发布时间】:2009-07-18 18:35:48
【问题描述】:

在您的页面上有多个$(document).ready(function() {}); 是不是很糟糕?我有一个网站,我在不同的时间加载不同的东西。我在$(document).ready() 中触发了那些部分回发功能,但我一次在页面上大约有 4 或 5 个。这是一个不好的做法吗?具体来说,它会导致任何性能问题吗?

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    这个答案不再相关。请参阅下面的其他帖子了解更多最新的 jQuery $.ready() 影响。此帖子已超过 3 年。

    见:http://jsperf.com/docready/11

    答案是否定的!您可以随心所欲地乱扔垃圾(注意 字垃圾)。它们只是成为一个事件队列,当 触发就绪事件。

    http://www.learningjquery.com/2006/09/multiple-document-ready

    【讨论】:

      【解决方案2】:

      答案实际上是“是的,它会影响性能”:

      http://jsperf.com/docready/3

      【讨论】:

      • 您正在根据自己的意见得出结论。答案是性能受到影响(一切都会受到性能影响),并且应该权衡这种影响与它的好处。即使使用 IE8,也需要 20K $.ready 调用才能将我的页面减慢 1 秒。我使用的 50 - 100 会导致在 IE 上增加约 0.0025 秒或在 Chrome 上增加 0.000125 秒。
      【解决方案3】:

      不,你想要多少都可以。一个更短、更优雅的方法是$(function(){})

      【讨论】:

        【解决方案4】:

        如果它在同一个页面上,我会亲自将它们全部放在同一个位置,这样您就不会因为忘记加载时发生的事情而被抓住。

        我怀疑性能影响是否如此重要。您是否尝试过将它们放在一起或分开对页面进行基准测试?

        【讨论】:

          【解决方案5】:

          如果其中任何一个抛出异常,它会阻止其余的运行。使用跨多个源文件(尤其是第 3 方库)“散布”的代码进行调试可能非常困难。

          【讨论】:

            猜你喜欢
            • 2010-12-11
            • 2013-04-17
            • 2011-05-22
            • 1970-01-01
            • 1970-01-01
            • 2011-09-24
            • 2019-06-09
            • 2010-12-16
            • 1970-01-01
            相关资源
            最近更新 更多