我进行以下测试,以查看该defer属性是否推迟脚本块的执行。有2个脚本块。第一个带有defer属性,第二个带有out。如果我正确理解,则该属性会强制浏览器在所有html解析完成后(包括其他script块)。
但是从控制台来看,我始终是“从推迟开始”的。这是为什么?defer在本script地块上不起作用?
<html>
<body>
...
<script type="text/javascript" defer>
console.log('from deferred');
</script>
<script type="text/javascript">
console.log('from regular');
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
defer仅适用于外部脚本:
如果该
src属性不存在(例如,对于内联脚本),则不得使用此属性,在这种情况下,它将无效。要对动态插入的脚本实现类似的效果,请
async=false改用。具有defer属性的脚本将按照它们在文档中出现的顺序执行。
也,
在浏览器继续解析页面之前,不带
async或defer属性的脚本以及内联脚本将立即被获取并执行。
由于本地脚本是在页面解析完成之前执行的,因此defer将不适用。defer得到应用后分析,但之前 DomContentLoaded。
| 归档时间: |
|
| 查看次数: |
863 次 |
| 最近记录: |