JavaScript 应该进入 为了<body>性能,而不是 <head>?



一个谈论快速web开发的IBM网站在这里提到了一个有用的框架HTML。在模板中,脚本包含在主体内部,而不是头部。这是一个好的做法吗?把任何图书馆都放在脑袋里不是更好吗?

<html>
<head>
<title>Template</title>
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="css/bootstrap-responsive.min.css" rel="stylesheet">
</head>
<body>
<!-- The main HTML will go here -->
<script src="http://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>

<html>
<head>
<title>Template</title>
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="css/bootstrap-responsive.min.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<!-- The main HTML will go here -->
</body>
</html>

现在的标准是在body标记关闭之前包含脚本标记,这样脚本加载就不会阻塞页面加载的其余部分。

<script src="myScript.js"></script>
</body>

这样,用户就不必等待很长时间才能看到页面上的内容,然后就添加了javascript功能。

然而,越来越多的网站和"web应用程序"使用javascript/ajax,可能需要在页面上显示任何内容之前加载脚本。这种情况不太常见,但在这种情况下,脚本可以包含在任意一个位置,因为如果javascript负责创建/加载内容,则视觉结果将是相同的。

验证:以下是谷歌的建议:https://developers.google.com/apps-script/guides/html/best-practices#load_javascript_last

还可以考虑从CDN加载库,这样您就可以利用浏览器缓存。

/否

是的,这是一个很好的做法,因为如果代码在末尾,页面加载速度会更快。。。

它等待整个页面加载,然后加载脚本。

方法如下:

我访问过这个网站,它很快就响应了我浏览器的请求。但当我收到回复时,却是一些白色的页面,上面有一些方框和一些文字。加载页面需要很长时间。过了一段时间,一些图像出现在框中,文本也被设置了样式

为什么

当页面加载时,脚本被放置在头部。因此,脚本正在加载,图像和样式都在队列中。所以我不得不在加载脚本时看到一个丑陋的页面。

替代方案:

如果脚本被放在页面的末尾,就在</body>标记之前,样式和图像会加载得更快,这样我就不必看到难看的网站,那么页面就会加载。

参考文献:

  • http://developer.yahoo.com/performance/rules.html#js_bottom
  • http://stevesouders.com/docs/googleio-20080529.ppt
  • 谷歌分析有性能开销吗
  • http://www.stevesouders.com/blog/2008/12/27/coupling-async-scripts/

最新更新