我应该使用window.load还是document.ready jquery

时间:2011-12-19 14:15:18

标签: javascript jquery load window document

最近我看到你可以使用

$('document').ready(function() {
//Do Code
});

$('window').load(function() {
//Do Code
});

用于jQuery。

然而,它们对我来说似乎是一样的!但显然不是。

所以我的问题是:我应该使用哪一个基于动画和异步的网站?而且两者中哪一个通常更好用?

感谢。

2 个答案:

答案 0 :(得分:31)

$('document').ready 在DOM准备就绪时运行代码,但在页面本身已加载时运行代码,也就是说,网站尚未绘制,并且尚未加载图像等内容

$(window).load 在页面已绘制且所有内容均已加载时运行代码。当您需要获取图像的大小时,这可能会有所帮助。如果图像没有样式或宽度/高度,除非使用$(window).load,否则无法获得其大小。

答案 1 :(得分:7)

首先,您可能需要考虑使用“就绪”事件,您可以像这样处理:

$().ready(function() {
  ...
});

或者,更简洁和惯用:

$(function() {
  ...
});

“load”处理程序确实与实际事件有关,可以在几种不同类型的元素上处理:例如<img><iframe>。文档或窗口级别的“加载”事件在加载所有页面资源时发生。 (在某些浏览器中合成)“就绪”事件会在页面DOM准备就绪时发生,但可能在<img>内容之前发生。

另一个选择是简单地将<script>标记放在<body>的最后或甚至<body>之后。这样脚本就可以使用整个DOM了,但是你不必担心任何类型的事件处理。