我现在可以安全地使用<script defer =“”>吗?</script>

时间:2013-12-27 12:06:10

标签: javascript deferred-execution

从我正在阅读的内容来看,defer上的<script>属性现在是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>

为什么不广泛使用?我现在可以实际使用吗?

2 个答案:

答案 0 :(得分:2)

我做了一些研究,我发现defer的问题不会停留在IE9中动态添加的内联脚本和脚本中。在HTML5 Boilerplate GitHub https://github.com/h5bp/lazyweb-requests/issues/42

上有各种浏览器一长串问题和不一致

真是太遗憾了,我觉得他们应该尝试改进defer,而不是处理可疑的async(可疑,因为只有当脚本不相互依赖时它才有用,这对我来说很少见)

答案 1 :(得分:0)

你问是否:

  

您可以可靠地使用defer并在指定顺序的DOMContentLoaded 之前运行脚本

不幸的是,我没有看到任何说明defer脚本必须按顺序执行的规范或标准,所以我不认为你可以在任何浏览器中依赖它。规范只是说在加载DOM之后必须执行defer脚本。

相关问题