2

谁能告诉我将下一个脚本标签放在 <body> 元素之后和将它放在 </body> 元素之前有什么好处?

<script>
(function (){
var script = document.createElement("script");
script.async = true;
script.type = "text/javascript";
script.src = "foo.js";
document.getElementsByTagName("head")[0].appendChild(script);}
());
</script>
4

1 回答 1

-2

2017年编辑

这个答案完全过时了。随着现代浏览器中的 http2 和我们堆栈中的模块捆绑器,越来越多的方向是使用小捆绑包。仅在需要时才加载的块。在移动时代更为重要。

旧答案

最佳解决方案是包含当前页面所需的所有内容的单个 javascript 文件。只有一个请求意味着更好的性能。对于生产,可以压缩单个文件,这比压缩多个文件要好。

此外,我会坚持将脚本放在 html 正文的末尾,因为即使尚未加载 javascript,也会呈现和显示 html。

带有 的脚本标签async很可能在每个浏览器中表现不同(因为它是一个相当新的功能),而将脚本放在正文的末尾应该在每个主要浏览器中产生相同的结果。

这是 JavaScript 异步加载的一篇文章:Thinking Async

于 2013-06-25T10:41:10.567 回答