2

Jquery 有一个ready方法:

$(document).ready(function(){
   // my code
})

当 dom 准备好时,它将执行我的代码。

我有一个问题,如果我将所有脚本都放在 之后</body>,例如

<html>
    <body>
       // all kinds of html tags
    </body>
    <script src="/path/to/jquery.js"></script>
    <script src="/path/to/all-javascript-compressed-in-one-file.js"></script>
</html>

我还需要写$(document).ready()吗?dom已经ready在后面了</body>吗?

4

2 回答 2

4

通常,脚本是在 之前 </body>而不是之后添加的——否则 HTML 将不会验证;正如 Šime Vidas 在评论中所指出的,任何内容都不能出现在<head>或之外。<body>

话虽如此,从技术上讲,此时 DOM 还没有准备好(因为浏览器仍在解析<body>),但已经包含了正文中的所有元素。因此,跳过 是安全的$(document).ready()

这样做会更早地执行您的初始化脚本,因为在DOMContentLoaded触发实际事件之前会有一些延迟。这意味着更快的页面加载和更好的用户体验。

您可能对有关强制 jQuery事件的相关讨论感兴趣。ready

于 2012-11-01T13:55:47.800 回答
3

一句话,没有。当 dom 树可用时,dom 被认为是“准备好的”,如果您的 javascript 是页面上的最后一件事,那么它之前的所有内容都是“准备好的”,因为网页是从上到下“加载”的。

于 2012-11-01T13:55:06.377 回答