【发布时间】:2013-12-27 12:06:10
【问题描述】:
根据我的阅读,<script> 上的 defer 属性现在是 widely supported,但我从未看到它被使用或提及过。
如果您不需要延迟内联脚本并且不动态添加脚本(which cause problems in IE9- and Safari 4-),似乎您可以可靠地使用它并按指定顺序拥有scripts run right before DOMContentLoaded (async 不会发生这种情况)
这基本上是大多数网站所需要的:在 DOMready 上按顺序运行几个或多个外部脚本。例如:
<script defer src='jquery.js'></script>
<script defer src='jquery.some-plugin.js'></script>
<script defer src='my-scripts.js'></script>
为什么它没有被广泛使用?现在真的可以用了吗?
【问题讨论】:
-
因为我们大多数人都会在
</body>标签之前包含脚本并避免所有这些问题? -
这就是我要说的,没有问题,如果你只是将“
</body>之前的脚本”替换为“<head>中的defer脚本”。他们甚至更早开始下载,因此使用defer有一个优势 -
它没有被广泛使用,原因与您在第一行中提到的相同:现在得到广泛支持。因为,在此之前,它并没有得到广泛的支持。是的,与在正文结束前开始下载相比,使用
defer进行延迟执行 是个好主意! -
我投票决定重新开放,因为这显然可以有一个客观的答案。 caniuse.com的声明可以客观地被证明和证伪,这里的答案也是如此。
标签: javascript deferred-execution