【问题标题】:Modernizr vs $(document).ready()Modernizr 与 $(document).ready()
【发布时间】:2012-01-02 07:11:20
【问题描述】:

从网络面板显示,当您通过 Modernizr.load 加载脚本时,它实际上并没有阻止 $(document).ready()。

所以理论上,假设我通过 Modernizr 添加 json2.js,而另一个开发人员尝试在 $(document).ready() 中使用 JSON.parse,他们的脚本实际上可能会因为竞争条件而中断。

是否可以在不尝试监管所有代码签入的情况下解决此问题?

【问题讨论】:

    标签: jquery modernizr document-ready


    【解决方案1】:

    我会这样看:使用 Modernizr(和浏览器测试)加载 Javascript 文件是一个非常普遍的设计决策,您团队中的每个人都需要在任何情况下都知道。

    但是,您可能希望(如果您还没有)对您的应用程序进行某种初始化,这应该是运行的最后一件事——在所有内容都已加载之后。然后可以在 yepnope 回调中执行此初始化,显然甚至在 $(document).ready() 包装器中。

    Yepnope 在“常见问题”中指出了这种情况:

    仅仅因为您的脚本已完成,并不意味着文档已准备就绪。 不要忘记您可以在您的内部使用文档就绪回调 yepnope 回调。如果您正在玩弄 DOM,我们会非常重视 鼓励你这样做,因为你的测试环境可能会起作用 与您的生产服务器不同,速度非常快 不同。


    为了完整起见:

    在没有进一步检查的情况下,这里有一些关于如何处理document.ready + Modernizr.load 的其他想法:How can I use yepnope.js with $(document).ready() effectively?https://stackoverflow.com/a/6767886/564721

    【讨论】:

    • 我们最终将 Modernizr.load() 用于纯粹的美学垫片。功能特性用起来太痛苦了。
    猜你喜欢
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2011-04-07
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    相关资源
    最近更新 更多