是否保证在窗口onload事件之前执行外部异步/延迟javascripts?

时间:2016-06-02 09:51:23

标签: javascript html asynchronous onload deferred-execution

根据我的理解,异步脚本在文档解析完成之前执行,之后推迟脚本。但是他们与window.onload事件的关系呢?

如果我理解正确,异步脚本可以保证在window onload和deferred之前运行,之后可以执行。是对的吗?或者这两种脚本总是在window onload之前执行?

2 个答案:

答案 0 :(得分:3)

MDN说明load事件:

  

加载事件在文档加载过程结束时触发。此时,文档中的所有对象都在DOM中,所有图像脚本,链接和子框架都已完成加载

异步脚本在下载后立即加载,在解析HTML后加载了延迟脚本。加载后,load事件会触发。所以是的,它在规格中得到了保证。

答案 1 :(得分:0)

是的,volatileasync脚本会在窗口的defer事件之前运行。

我只是想指出该事件被称为load,而不是loadonload是为此事件附加事件处理程序的一种方法。

我还建议将window.onload事件附加到load元素本身,而不是script对象:

window