哪个规范定义了就绪事件?

Posted

技术标签:

【中文标题】哪个规范定义了就绪事件?【英文标题】:Whic spec define the ready event? 【发布时间】:2016-08-21 18:53:00 【问题描述】:

首先,我想知道 $(document).ready 和 $(window).load 之间的区别,然后我就知道了。

但是,我有一些新问题。什么是 ready 事件,什么是细节。什么是加载事件。

我在 html 规范中找到了加载事件的描述。

但是我找不到ready事件的描述。

【问题讨论】:

没有 jQuery 规范。 @Oolong,如果你想了解readyload之间的区别,你应该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 页面中指定的。

希望这对您有用。

谢谢

【讨论】:

以上是关于哪个规范定义了就绪事件?的主要内容,如果未能解决你的问题,请参考以下文章

MDL 就绪事件

jQuery文档就绪事件

在文档就绪事件发生时,window.open 在 iphone 中不起作用

放大 DataStore 查询:多次触发集线器就绪事件

为啥我的页面在刷新期间会在 Chrome 中触发“就绪”事件?

DOM 就绪事件之前的 URL 属性