嵌入脚本时:
<script src="..." async defer></script>
有没有办法知道他们什么时候装完?
通常在调用window.load
事件时,人们会希望所有脚本都准备就绪。但是,当您使用async
或defer
加载它们时,我不知道它是否仍然存在。我在线阅读了一些文档,但在这个问题上找不到任何结论。
答案 0 :(得分:13)
<强>答案:强>
加载脚本后,您可以利用onload
事件属性来执行某种回调。
示例:
在下面的示例html脚本元素中,当脚本(来自google api的jquery库)异步加载完成后,会弹出一条警告,说明&#39;资源已加载&# 39。强>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js" async defer onload="alert('resource loaded');">
注意:src脚本加载速度非常快,因为它由google托管,所以弹出窗口很可能会在页面/ DOM加载后立即出现。
window.onload
等待所有内容在开始之前加载,而document.onload
在文档对象模型(DOM)准备好时触发。
因此,如果您有异步脚本document.onload
将首先执行,而window.onload
将等待这些异步脚本完成加载。
总结:
window.onload
将考虑异步脚本。document.onload
不会考虑异步脚本。