不引人注目的JavaScript:HTML代码顶部还是底部的<script>?

最近,我阅读了Yahoo宣言中的“加快网站访问速度的最佳做法”。他们建议尽可能将JavaScript包含项放在HTML代码的底部。


但是确切的地点和时间?


我们应该在关闭之前</html>还是之后放置它?最重要的是,我们什么时候仍应将其放在本<head>节中?


千巷猫影
浏览 743回答 4
4回答

浮云间

真正不干扰脚本的可能性有两种:通过头部的script标签包含一个外部脚本文件通过正文底部的script标签(在之前</body></html>)包含一个外部脚本文件第二个可能更快,因为最初的Yahoo研究表明,某些浏览器在命中script标签时会尝试加载脚本文件,因此,在完成浏览器之前,它们不会加载页面的其余部分。但是,如果脚本具有“就绪”部分,并且必须在DOM准备就绪后立即执行,则可能需要将其放在头部。另一个问题是布局-如果您的脚本要更改页面布局,则您希望它尽快加载,这样您的页面就不会花很长时间在用户面前重新绘制自身。如果外部脚本站点位于另一个域(例如外部窗口小部件)上,则可能值得将其放在底部,以避免它延迟页面的加载。对于任何性能问题,请自己制定基准&nbsp;-一次完成研究可能会因您自己的本地设置或浏览器的更改而改变。

慕盖茨4494581

从来没有这么干过-雅虎建议将脚本放在结束</body>标记之前,这样会产生一种幻觉,即页面在空的缓存上加载速度更快(因为脚本不会阻止下载文档的其余部分)。但是,如果您有一些要在页面加载时运行的代码,则仅在整个页面加载后才开始执行。如果将脚本放在<head>标记中,它们将在执行之前开始执行-因此,在准备好的缓存中,页面实际上看起来加载得更快。同样,将脚本放在页面底部的特权并非始终可用。如果需要在依赖于之前加载的库或其他JavaScript代码的视图中包含内联脚本,则必须将这些依赖项加载到<head>标记中。雅虎的所有建议都很有趣,但并不总是适用,应视具体情况进行考虑。

qq_笑_17

就像其他人所说的那样,将其放置在html&nbsp;主体&nbsp;的结束标记之前。前几天,我们接到许多客户的电话,抱怨他们的网站速度非常慢。我们在本地访问了他们,发现他们花了20到30秒来加载单个页面。考虑到服务器性能不佳,我们登录了-但是Web和sql服务器的活动均为〜0%。几分钟后,我们意识到外部站点已关闭,我们正在将其链接至Javascript跟踪标签。这意味着浏览器正在点击站点顶部的script标签,并等待下载script文件。因此,至少对于第三方脚本/外部脚本,我建议将其作为页面的最后内容。然后,如果它们不可用,浏览器将至少加载该页面直到该点为止-并且用户将忽略该页面。

温温酱

总结一下,基于以上建议:对于外部脚本(Google Analytics(分析),第三方营销跟踪器等),请将其放置在</body>代码之前。对于影响页面布局的脚本,请放在最前面。对于依赖“ dom ready”的脚本(如jquery),请考虑放置在前面,</body>除非您出于特殊情况将脚本放在头部。如果有依赖项的内联脚本,请将所需的脚本放在头。
打开App,查看更多内容
随时随地看视频慕课网APP