javascript/jquery - $(document).ready()和脚本位置

Mat*_*hew 7 javascript optimization jquery

我想知道如何$(document).ready()工作,以及一般的脚本.假设我有脚本位于页面底部(出于性能原因,我被告知?).举个例子:假设你有一个链接,你需要阻止它的默认动作(preventDefault()).如果脚本位于页面底部,用户是否可以在浏览器知道不关注链接之前看到该页面并单击该链接?

sje*_*397 2

“head”部分中的脚本在脚本标记加载到浏览器中时(即正文之前)进行评估。当浏览器在解析页面时遇到文档末尾的脚本标记时,也会执行它们 - 因此在“文档就绪”事件之前。当整个页面加载时,即当浏览器解析'</html>'结束标记时,会触发“文档就绪”事件。

所以,是的,如果需要一段时间来加载和执行禁用文档末尾链接的脚本,用户可以同时单击链接。

一种选择是反向操作 - 即加载禁用链接的页面,并让您的 JavaScript 启用它们。或者,在顶部的脚本中使用“live”或“delegate”(加载 jquery 之后),以便链接在创建时受到影响。

在此处查看有关浏览器处理动态加载脚本的方式的一些复杂性,这些脚本略有不同。