我最近读了雅虎的宣言Best Practices for Speeding Up Your Web Site。他们建议尽可能将JavaScript包含放在HTML代码的底部。
但是确切的地点和时间呢?
我们应该把它放在关闭</html>之前还是之后?最重要的是,我们什么时候还应该把它放在<head>部分?
发布于 2008-09-27 12:17:28
对于真正不起眼的脚本,有两种可能性:
通过头部中的脚本标记包括外部脚本文件的脚本标记
</body></html>)之前
第二个可能会更快,因为雅虎最初的研究表明,一些浏览器在点击script标签时会尝试加载脚本文件,因此在完成之前不会加载页面的其余部分。然而,如果你的脚本有一个“准备好”的部分,它必须在DOM准备好的时候立即执行,你可能需要把它放在头部。另一个问题是布局-如果您的脚本要更改页面布局,您希望尽早加载它,这样您的页面就不会花费很长时间在用户面前重新绘制自己。
如果外部脚本站点位于另一个域(如外部小部件),那么将其放在底部可能是值得的,以避免延迟页面的加载。
对于任何性能问题,做你自己的基准测试-当研究完成时,可能是正确的,可能会随着你自己的本地设置或浏览器中的变化而改变。
发布于 2008-09-27 12:36:18
这从来不是一成不变的-雅虎建议将脚本放在结束的</body>标记之前,这样会产生一种错觉,即页面在空的缓存中加载得更快(因为脚本不会阻止下载文档的其余部分)。但是,如果您有一些代码要在页面加载时运行,则只有在加载完整个页面后才会开始执行。如果您将脚本放在<head>标记中,它们将在之前开始执行-因此在预置的缓存中,页面的加载速度实际上会更快。
此外,将脚本放在页面底部的特权并不总是可用的。如果需要在依赖于之前加载的库或其他JavaScript代码的视图中包含内联脚本,则必须在<head>标记中加载这些依赖项。
总而言之,雅虎的建议很有趣,但并不总是适用的,应该根据具体情况加以考虑。
发布于 2009-05-03 08:36:23
正如其他人所说,将它放在闭合正文html标记之前。
前几天,我们接到许多客户的电话,抱怨他们的网站速度非常慢。我们在本地访问了他们,发现他们花了20-30秒来加载一个页面。我们以为是服务器表现不佳,就登录了--但web和sql服务器的活跃度都约为0%。
几分钟后,我们意识到一个外部网站宕机了,我们正在链接到Javascript跟踪标签。这意味着浏览器正在点击站点头部的脚本标记,并等待下载脚本文件。
因此,至少对于第三方/外部脚本,我建议将它们作为页面上的最后一件事。然后,如果它们不可用,浏览器至少会加载页面,直到该点-用户将忘记它。
https://stackoverflow.com/questions/143486
复制相似问题