1717这并不完全正确,简单来说:

样式声明应该尽可能靠近页面顶部,因为浏览器在加载CSS前不会渲染页面(以避免未经样式修饰的内容闪烁)。

脚本标签应该尽可能靠近页面底部,因为它们会阻止浏览器在加载和完成标签之前解析(因为脚本可能使用document.write更改文档)。

如果您对前端性能感兴趣,我强烈推荐阅读Steve Souders的《高性能网站建设指南》(High Performance Web Sites: Essential Knowledge for Front-End Engineers)。

- Magnar2你可以延迟加载JavaScript,告诉浏览器加载的JS不会改变页面。然而,你的答案是最正确的(在撰写时),所以我给你加1分。 - Maxim Krizhanovsky不幸的是,并非所有浏览器都会遵守 defer。 - Magnar回答链接66这里有很多关于为什么要这样做的解释,但我通常会选择来自雅虎开发者(Yahoo Developers)的一种方式。

高性能网站规则5 - 将样式表放在顶部

高性能网站规则6 - 将脚本移至底部

- balexandre1感谢提供链接。非常好的解释。 - FrenkyB回答链接33在头部放置js文件并不是标准做法,大多数情况下,把它们放在页面底部甚至更好,因为这样可以让js在html加载完成后再加载。这使得直接使用html元素成为可能(例如,向特定的div添加处理程序等)。对于css,特别是标签,将其放置在头部是标准做法。这使得样式可用于加载在中的html。无论是放置css还是js都与性能关系不大。

- KooiInc回答链接11把 CSS 放在头部的原因是在渲染页面前就加载它,这样页面就能以它的样式进行呈现。否则,页面将在没有设计的情况下被渲染,之后再重新渲染。JS 通常在底部加载,而不是在顶部。将一些 JS 加载到头部的原因是使其在页面上可用(否则,如果您在页面主体中使用外部库的 JS,则可能调用未定义的对象/函数)。

- Maxim Krizhanovsky回答链接11据我所知,CSS只有在头部才有效,但是对于CSS和JS都应该放在头部,这样在页面中任何需要它们的地方时它们肯定是可用的。

例如,如果您在页面正文中调用了一个JS函数,但该函数尚未声明,则当然会出现脚本错误。

就性能而言,我不知道在head中放置它们是否会有任何性能提升,但我可能是错的。有时候,通过将某些脚本放在页面底部,你可以获得性能改善,但这仅仅是因为其他内容在之前渲染(而不是浏览器在加载外部资源时停止渲染)。

- hdougie1我对你在这里描述的情况感到担忧,即JS被调用,但函数尚不存在,因为它位于底部。也许有人可以添加一些内容吗? - Marc Guvenc回答链接00CSS 应该放在顶部,这样浏览器可以立即开始布局。

Javascript 应该放在底部。Javascript 可以包含 document.write(),因此浏览器在运行 Javascript 之前无法渲染任何 Javascript 之后的内容。

- Sjoerd回答链接00如果您将JavaScript移动到页面的底部,我可以成为性能增强...

- Jakub Konecki回答链接-1-1我认为你所说的好处更容易归因于将代码放在单独的文件中,而不是在页面的特定位置包含文件。

当然,对于JavaScript,如果将其放在单独的文件中,则可以更容易地利用诸如缩小和压缩等方面。

如果JS或CSS文件在多个页面上使用,则缓存也可以在提高性能方面发挥作用。

- James Wiseman回答链接