$(document).ready()和包含身体末尾的脚本有什么区别?

时间:2011-01-27 18:52:14

标签: javascript jquery html

在jQuery的$(document).ready()上执行JavaScript函数,并将其包含在正文末尾的脚本标记中的HTML中有什么区别?

谢谢,

DLiKS

3 个答案:

答案 0 :(得分:7)

<script>标记内的JavaScript代码会立即被评估(执行)。请注意,在这种情况下,页面尚未(完全)解析,并且DOM尚未准备就绪。

jQuery ready()回调中的JavaScript代码在DOMContentLoaded事件上进行评估,该事件发生在浏览器解析整个HTML源代码之后。 关于此活动: https://developer.mozilla.org/en/Gecko-Specific_DOM_Events

请注意,定义就绪处理程序的现代方法是:

$(function() {
    // code
});

另外,请查看此SO问题,该问题指出当您不使用现成回调时会发生什么:How many JavaScript programs are executed for a single web-page in the browser?

答案 1 :(得分:3)

  • 身体末端的脚本会 加载后立即运行。
  • $。ready在文档完成后执行(任何 链接的css也加载了。)
  • Body.load运行 仅当所有图像都加载为 好。

答案 2 :(得分:1)

SO question可能会有所帮助。

如果你在一个放在关闭身体标签(</body>)旁边的脚本中调用一个函数,那就像在$(document).ready(function(){});部分中使用<head>一样。