我只是在 Mozilla Firefox 中使用插件“Yslow”,它告诉我应该将 JavaScript 放在底部。我以前听说过这个,但并没有真正考虑太多。与顶部相比,将 JavaScript 放在网页底部真的有优势吗?
10 回答
它将允许网页在执行 JavaScript 之前进行可见加载,这对于 Google Analytics 之类的事情是有意义的,这不需要在页面加载之前发生。
您可能还想查看 jQuery、原型等内容并附加到“就绪”处理程序,该处理程序在 DOM 完全加载后执行 JavaScript 代码,这是许多 JavaScript 代码的合适位置。
假设您没有在 CDN 上运行,或者没有从单独的子域或服务器为您的 JS 提供服务,它将同步加载并强制您的 HTML 内容等待它下载文件。通过将 JS 放在页面底部的结束</body>
标记之前,您可以在加载 javascript 之前解析 HTML。 这会产生更快的页面加载时间。
如果你有静态的 html 内容和大量的 javascript,它可以在感知页面加载时间上产生差异,因为 html 将首先加载给用户可以查看的内容。如果您没有太多的 javascript,或者现有的页面内容依赖于 javascript 才能发挥作用,那么这实际上并没有那么有用。
是的,页面将在加载和执行 javascript 之前加载内容并呈现它,因此页面加载速度会更快。
我想为这个主题带来更新,谷歌最近引入了异步截断http://support.google.com/analytics/bin/answer.py?hl=en&answer=1008080&rd=1可以为您的网站添加例如谷歌统计支持。它应该放在该<head>
部分的底部以获得最佳性能。关键是这增加了在用户离开页面之前发送的跟踪信标的可能性。
如果您想使用您的谷歌分析在谷歌网站管理员工具中验证您的网站,它也应该位于那里。
除此之外,基本上仍然适用相同的规则 - 底部的 javascript 用于“快速”加载页面。我使用引号是因为在 javascript 完成之前我不会计算完全加载的页面;-)
最佳
当您将 JavaScript 放在页面顶部时,浏览器将在标记、图像和文本之前开始加载您的 JS 文件。由于浏览器会同步加载 JavaScript,因此在加载 JavaScript 时不会加载任何其他内容。因此,在加载 JavaScript 时,用户将在几秒钟的时间范围内看到一个空白页面。
底部
另一方面,如果您将 JavaScript 放在页面底部,用户将首先看到页面加载,然后 JavaScript 将在后台加载。因此,例如,如果您的 CSS 和 HTML 需要 5 秒来加载,而您的 JavaScript 需要另外 5 秒,那么将我们的 JavaScript 放在页面顶部将为用户提供 10 秒的“感知”加载时间,并将其放在底部将给出 5 秒的“感知”加载时间。
取自德米安实验室。
它允许所有 DOM 元素在加载处理它们的 Javascript 之前完全加载。该标准也是 Visual Studio 的一部分。
将脚本放在元素的底部会提高显示速度,因为脚本编译会减慢显示速度。
是的,包括页面底部的 javascript 确实加快了页面的加载速度。由于浏览器同步执行事物,因此如果将其放置在页面顶部,则会影响页面加载。如果它被放置在页面底部,那么当浏览器开始加载 javascript 时,页面将加载整个标记,从而为用户提供更好的体验。
建议将所有内联脚本放在最后以提高性能,您不希望您的用户在脚本呈现时盯着空白屏幕。您可以使用 defer 属性,例如。以防止链接脚本延迟您的 html 呈现。