3

我正在查看用于跟踪 domready 事件的 jQuery 源代码,但有一件事我并不完全理解。如果脚本是动态包含并异步加载的怎么办?这样,当脚本加载时,文档可能已经加载。jQuery 检查的唯一地方是 document.readyState。

如果我错了,请纠正我,但是这个属性不是最近才引入 Firefox 的吗?如果是这样 - DomContentLoaded 事件可能已经被触发(甚至窗口的 onLoad 可能)并且在这种情况下无法实际调用 domready 上的代码。

4

1 回答 1

3

在当前版本的 jQuery 中,这一切都是通过“延迟”机制来处理的。页面的就绪状态被封装在一个 Deferred 对象中,函数被简单地添加到“done()”队列中。Deferred API 只记住页面是否准备好,因此在页面准备好后将函数作为“准备就绪”处理程序传入将立即调用该函数。

然而,跟踪“准备就绪”何时实际发生的代码非常痛苦。

于 2011-07-05T15:41:29.360 回答