根据我的理解,异步脚本在文档解析完成之前执行,之后推迟脚本。但是他们与window.onload事件的关系呢?
如果我理解正确,异步脚本可以保证在window onload和deferred之前运行,之后可以执行。是对的吗?或者这两种脚本总是在window onload之前执行?
答案 0 :(得分:3)
MDN说明load
事件:
加载事件在文档加载过程结束时触发。此时,文档中的所有对象都在DOM中,所有图像脚本,链接和子框架都已完成加载。
异步脚本在下载后立即加载,在解析HTML后加载了延迟脚本。加载后,load
事件会触发。所以是的,它在规格中得到了保证。
答案 1 :(得分:0)
是的,volatile
和async
脚本会在窗口的defer
事件之前运行。
我只是想指出该事件被称为load
,而不是load
。 onload
是为此事件附加事件处理程序的一种方法。
我还建议将window.onload
事件附加到load
元素本身,而不是script
对象:
window