“把脚本放在底部”是正确的吗?

时间:2008-12-20 07:05:46

标签: javascript performance yslow

在改善网站性能http://developer.yahoo.com/performance/rules.html的最佳实践中,Steve Souders提到了一条规则“将脚本移到底部”。这有点令人困惑。实际上,我注意到很多网页没有将脚本放在底部,而YSlow仍然标记为这些页面的A.

那么,我应该何时遵循“将脚本放在底部”这一规则?

5 个答案:

答案 0 :(得分:30)

当用户从您的网站请求页面时,页面HTML开始流式传输到浏览器。一旦浏览器遇到外部图像,脚本,CSS文件等的标记,它将立即开始同时下载该文件。

如果您将脚本放在页面底部,它们将最后加载。换句话说,您将首先加载您的页面/应用程序的HTML内容/结构/ css /图像,并且可以更快地在浏览器中显示某些内容;您的用户在看到应用程序中的内容之前不必等待脚本完成下载。

答案 1 :(得分:14)

页面顶部有脚本的网页仍然得分为“A”的原因是因为这不如可以进行的其他性能改进那么重要。

每个规则都是加权的,因此有些规则比其他规则更能影响ySlow等级。

我总是把脚本放在底部。在页面顶部需要脚本的原因很少。我能想到的唯一原因是你需要你的JavaScript在页面中的其他任何内容之前立即执行 ,这是非常罕见的。

答案 2 :(得分:8)

有时,您别无选择,只能将脚本放在页面中的特定位置。但是,如果您将脚本放在页面底部,浏览器将不会中断其渲染以加载JS引擎来处理您的脚本(如果您有大量循环运行,这可能会很昂贵)并且可能会显示及早查看页面。

答案 3 :(得分:6)

我不确定这是一个性能问题(可能),但是我在微软的演示文稿中,并且主持人说网络蜘蛛有时只读取网页上的第一个x字符数量来索引它。因此,如果您有大量脚本,则可能无法正常访问您的内容并将其编入索引(并且您网站的网页排名不会那么高)。

答案 4 :(得分:6)

代码可能引用尚未实例化的DOM对象,但这是我能想到的最明显的原因。