什么时候不应该为事件处理程序使用$(document).ready(function()?

use*_*637 5 jquery

我是jquery和javascript的新手,只是想知道,为什么你不想.ready()为你的所有事件处理程序使用该函数?

如果用户在整个页面呈现之前向鼠标事件或键盘事件发送输入,是否会出现潜在问题?

SoW*_*Lie 4

永远不应该出现这种情况,当 DOM 加载时,jQuery 文档准备就绪就会触发。它不会等待完整页面(包括图像等)加载。用户能够及时做出反应以尝试在执行代码之前触发某些操作的情况是极其罕见的。阅读此内容: http: //api.jquery.com/ready/

具体来说,第一段:

虽然 JavaScript 提供了在渲染页面时执行代码的 load 事件,但只有在完全接收到所有资源(例如图像)后,才会触发该事件。在大多数情况下,一旦 DOM 层次结构完全构建完毕,脚本就可以运行。传递给 .ready() 的处理程序保证在 DOM 准备好后执行,因此这通常是附加所有其他事件处理程序并运行其他 jQuery 代码的最佳位置。

因此,使用 $(document).ready(function() { }) 或等效的 $(function() { }) 始终是一个好习惯。

编辑:为了进一步确保用户永远不会遇到麻烦,请确保您的脚本全部托管在您的网站旁边。例如,jQuery 可以选择使用 CDN。CDN 很好,但如果出于某种原因用户可以访问您的网站但不能访问 CDN,则可能会使您的页面处于无用状态。