【发布时间】:2014-03-07 12:27:02
【问题描述】:
每次我使用jsFiddle 时,我都会看到两个通过 jQuery 初始化内容的选项:onLoad 或 onDomReady。
我用我写的大部分脚本进行了测试,没有功能上的差异。在谷歌上搜索我发现主要区别之一是通过 onLoad,脚本只会在所有元素加载后才开始运行,包括 CSS 外部文件、JS 外部文件、图像等,如果您需要,这将很有用以特定顺序加载 JS 文件,但在任何给定时刻,其中一个文件引用另一个尚未加载的文件,而通过 onDomReady 一旦加载了 HTML 页面内容,脚本就已经开始加载,而不必其他人有到过。
知道这个区别对吗?是否还有其他差异需要研究和感知?
【问题讨论】:
-
@Pilot 我不认为你理解我的问题。我不是在寻求代码方面的帮助,而是寻求帮助以了解这两种方法之间的区别。我写了我对这些差异的理解程度,并要求提供更多信息。我想了解每个人的概念。我必须为此写一个小提琴吗?
-
一个主要区别是,jquery 就绪处理程序将被触发,即使在 DOM 有效地“准备好”之后设置了处理程序,jquery 在内部使用一个 promise。如果在加载窗口后设置了处理程序,则不会触发窗口 onload 事件。例如:jsfiddle.net/c58a6
-
看了你的小提琴,发现onDomready可以执行多次,而onLoad只能执行一次,对吗?
-
您可以绑定多个 onload 处理程序,但如果在窗口加载后绑定,这些处理程序将不会被触发。
-
所以绑定多个 onload 处理程序最终没用,对吧?
标签: javascript jquery