Modernizr vs $(document).ready()

voi*_*tor 6 jquery document-ready modernizr

从网络面板看,当您通过Modernizr.load加载脚本时,它实际上并不会阻止$(document).ready().

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

是否可以在不试图警告所有代码签到的情况下解决这个问题?

pol*_*lau 4

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

\n\n

但是,您可能想要实现(如果还没有)应用程序的某种初始化,这应该是加载所有内容后运行 \xe2\x80\x94 的最后一件事。然后可以在 yepnope 回调中执行此初始化,显然甚至在$(document).ready()包装器中也是如此。

\n\n

Yepnope在“常见问题”中指出:

\n\n
\n

仅仅因为您的脚本已完成,并不意味着文档已准备就绪。\n 不要忘记,您可以在\n yepnope 回调中使用文档就绪回调。如果您正在使用 DOM,我们强烈鼓励您这样做,因为您的测试环境的行为可能与生产服务器不同,速度也有很大不同。

\n
\n\n
\n\n

为了完整起见:

\n\n

无需进一步检查它们,这里有一些关于如何处理的其他想法document.ready + Modernizr.loadHow can I use yepnope.js with $(document).ready() effective? /sf/answers/473752051/

\n