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

标签 javascript jquery optimization

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

最佳答案

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

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

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

here对于一些关于浏览器如何处理动态加载的脚本略有不同的复杂性。

关于javascript/jquery - $(document).ready() 和脚本位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3358985/

相关文章:

javascript - 无法在 mozilla firefox 中对新窗口使用 .print()

javascript - Jquery在页面重定向后执行鼠标点击

php - 将 jQuery 与 PHP 相结合

.net - MongoDB 中的子文档索引

JavaScript 闭包和 setTimeout

javascript - 未捕获的语法错误 : Unexpected token '}'

javascript - 无条件的 For 循环 - Javascript

javascript - 当我将光标移到子菜单上时,子菜单如何从侧边栏向下滑动

c++ - 在 Linux 上通过管道接受文件到 C++ 应用程序的最快方法

c - PostgreSQL中C函数的最高性能?