【问题标题】:Whic spec define the ready event?哪个规范定义了就绪事件?
【发布时间】:2016-08-21 18:53:00
【问题描述】:
首先,我想知道 $(document).ready 和 $(window).load 之间的区别,然后我就知道了。
但是,我有一些新问题。什么是 ready 事件,什么是细节。什么是加载事件。
我在 HTML 规范中找到了加载事件的描述。
但是我找不到ready事件的描述。
【问题讨论】:
标签:
javascript
jquery
events
dom
【解决方案2】:
在 JavaScript 中,窗口是核心对象之一,它定义了几个有用的事件,例如onload,在jQuery到来之前,如果想要执行任何代码,一旦DOM完全加载,我们使用window.onload事件
window.onload 有一个问题,它在 DOM 加载时并没有完全执行,而是在包括大图像在内的所有内容完全加载后执行。浏览器通常会延迟执行 onload 代码,直到所有页面内容都加载完毕,因为这个用户可以看到他们第一次看到页面和 onload 中的代码被执行的时间之间有很大的延迟,如果你的页面内容很重,这个延迟尤其明显、flash 视频或其他低带宽互联网连接的繁重内容。
jQuery 通过引入 ready 事件解决了这个问题,你可能在几个 JavaScript 文件或 HTML 页面中看到过如下代码:
$(document).ready(function(){
alert("Inside jQuery ready method");
});
这里$()是jQuery()函数的快捷方式,我们将文档对象包装到jQuery对象中以使用ready()方法。我们将一个匿名函数传递给ready() 方法,该函数将在DOM 加载后执行。它不会等到所有 DOM 内容可用,例如图片。顺便说一句,除了$(document).ready()函数,你也可以使用下面的快捷键,效果是一样的:
$(function() {
alert("shortcut for document.ready method in jQuery");
});
除了更快的执行之外,jQuery ready 方法相对于 JavaScript 窗口 onload 事件的主要优势之一是,您可以在页面中多次使用它们,这与只能绑定到单个函数的 onload 事件不同。浏览器会确保按顺序执行所有 document.ready 代码,它们是在 HTML 页面中指定的。
希望这对您有用。
谢谢