延迟脚本和页面末尾放置的脚本之间的区别是什么?

时间:2012-11-01 18:04:17

标签: javascript html5 web-applications

HTML5为脚本引入了defer属性,其加载可以在HTML页面中延迟。 defer可用于任何不需要在DOM之前加载的脚本(a.k.a在准备好之前不要弄乱它)。

很长一段时间以来,建议Web开发人员将不需要加载的所有脚本放在不在页面head中但在body标记结尾之前的DOM之前。

使用defer和长期实践建议有什么区别?第一个是替代后者吗?

我很感激任何答案。谢谢。

1 个答案:

答案 0 :(得分:2)

  

异步和延迟脚本都会立即开始下载,而不会暂停解析器,并且都支持可选的onload处理程序,以满足执行初始化的常见需求,这取决于脚本。

webkit blog开始,所有浏览器的行为不一定相同。因此,如果脚本仍在最后,性能会更好,因为它们将在以后下载。

编辑2017:浏览器支持现在好多了,所以你可以在头脑中使用异步/延迟脚本。把它们放在最底层仍然是一个更安全的选择;新的浏览器仍然会提前下载它们,即使它们不在头脑中。