哪个规范定义了就绪事件?
Posted
技术标签:
【中文标题】哪个规范定义了就绪事件?【英文标题】:Whic spec define the ready event? 【发布时间】:2016-08-21 18:53:00 【问题描述】:首先,我想知道 $(document).ready 和 $(window).load 之间的区别,然后我就知道了。
但是,我有一些新问题。什么是 ready 事件,什么是细节。什么是加载事件。
我在 html 规范中找到了加载事件的描述。
但是我找不到ready事件的描述。
【问题讨论】:
没有 jQuery 规范。 @Oolong,如果你想了解ready
和load
之间的区别,你应该read the jQuery API。
【参考方案1】:
ready()
是jQuery基于DOMContentLoaded
实现的抽象。
load()
(注意这个 jQuery 方法已被弃用)基于window.onload
。
MDN 文章链接到规范。
【讨论】:
【参考方案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 页面中指定的。
希望这对您有用。
谢谢
【讨论】:
以上是关于哪个规范定义了就绪事件?的主要内容,如果未能解决你的问题,请参考以下文章
在文档就绪事件发生时,window.open 在 iphone 中不起作用