繁体   English   中英

Window.onload与脚本延迟

[英]Window.onload vs script defer

这里说,html文档有4个readyState可能的值:

未初始化 - 尚未开始加载
loading - 正在加载
交互式 - 已加载足够,用户可以与之交互
完成 - 满载

这里据说,基本上,defer告诉浏览器在执行该脚本块中的javascript之前等待“直到它准备好”。 通常这是在DOM完成加载和document.readyState == 4

那么问题是先执行什么以及为什么 - <script defer src="...">window.onload=function(){...} ?

请继续阅读http://www.w3.org/html/wg/drafts/html/master/scripting-1.html#attr-script-defer

可以使用这些属性选择三种可能的模式。 如果存在async属性,则脚本一旦可用就会异步执行。 如果async属性不存在但是存在defer属性,则在页面完成解析时执行脚本。 如果两个属性都不存在,则在用户代理继续解析页面之前立即获取并执行脚本。

http://www.w3.org/TR/html5/syntax.html#the-end告诉您延迟脚本首先运行:

...
执行脚本列表中的第一个脚本,该脚本将在文档完成解析时执行。
...

然后是DOMContentLoaded事件:

将任务排队以触发一个简单事件,该事件在Document处命名为DOMContentLoaded。

总是在这两个之后load事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM