页面底部的JavaScript
JavaScript on the bottom of the page?
我读到,最好将所有JavaScript文件都放在网页底部。HTML5 Boilerplate模板似乎同意:http://html5boilerplate.com/
而且似乎被广泛使用。
我的问题是:首先,这有什么真正的依据吗?我已经在Firebug中进行了测试,它似乎有一些小影响,但它是微不足道的吗?在加载CSS文件和脚本文件之前,图像和其他源似乎不会开始加载,但将它们放在底部似乎根本没有什么区别。
出于最佳实践的原因,这一点非常重要
当你在头中加载脚本时,它们会阻止其他下载!这包括你的造型,也将停止你的图像下载,直到脚本完成。
这是因为JavaScript文件是同步加载的。
还要注意,如果您不将JavaScript文件移动到页面底部,则在加载过程中会出现未格式化内容(FOUT)。这是因为在脚本加载完成之前,CSS不会下载。
以下是雅虎业绩规则6的摘录。
脚本引起的第二个问题是阻止并行下载。HTTP/1.1规范建议浏览器每个主机名并行下载的组件不超过两个。如果您从多个主机名提供图像,您可以同时获得两次以上的下载。(我已经让Internet Explorer并行下载了100多个图像。)然而,当脚本正在下载时,浏览器不会启动任何其他下载,即使是在不同的主机名上。
参考
http://developer.yahoo.com/performance/rules.html/
特别要注意规则6。
我们最近在办公室进行了这场辩论。我写了一篇很长的文章,阐述了我对这个问题的看法。简单的回答是,这实际上取决于你在做什么。对于面向内容的网页,底部放置似乎效果最好。然而,当创建以功能为主的web应用程序时,将其放在顶部有其优势。
JavaScripts同步加载。将其与通常较大的文件大小配对,就会发现由于同步JavaScript加载而导致加载延迟的内容。如果你把JavaScripts放在页面的底部,那么其他的东西都会先加载,JavaScript加载不会阻塞任何东西。
基本上,当浏览器命中<script>
标记时,它会停止加载文档的其余部分,直到加载并执行该<script>
。
- javascript跨浏览器确定用户是否滚动到页面底部
- javascript移动交叉浏览器确定用户是否滚动到页面底部
- 可以把JavaScript放在底部
- 在不使用Javascript的情况下将滚动条滚动到底部
- 页面底部的JavaScript
- 我应该把我的胡子模板脚本标记像javascript标记一样放在正文的底部吗
- 在CodeIgniter中将javascript移到底部的策略
- 如何用javascript滚动html中pdf对象元素的底部
- 为什么javascript在页面底部或有时在页面顶部运行
- 将 JavaScript 移动到 ASPX 页面的底部以减少 PageLoad
- 将JavaScript放在Grails Asset-Pipeline的底部
- 底部是Javascript,正文中的函数调用
- 纯Javascript,如何检测scrollTop是否会滚动到页面底部
- JavaScript- 不会滚动到页面底部
- 检测(事件)尝试在使用JavaScript或AngularJS页面顶部/底部时向上/向下滚动
- Javascript将居中的文本放在页面底部
- 无法使用包含 url 变量的 javascript 函数刷新到页面底部
- 使用CSS或Javascript将页脚固定到浏览器的底部10%
- javascript文件底部有一些奇怪的代码
- 如何使用jQuery或JavaScript底部边距