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

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

那么,我应该什么时候遵循“把脚本放在底部”的规则呢?

当用户从您的网站请求页面时,页面HTML开始stream式传输到浏览器。 只要浏览器遇到外部图像,脚本,CSS文件等的标签,就会同时开始下载该文件。

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

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

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

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

有时,您别无select,只能将脚本放在页面中的特定位置。 但是,如果将脚本放在页面的底部,浏览器将不会中断其渲染,以加载JS引擎来处理脚本(如果您的循环运行次数很多,则代价可能很高),并且可能会显示尽早查看页面。

我不确定这是一个性能问题(可能),但是我在微软给出的一个演示文稿中,主持人说,networking蜘蛛有时只读取网页上的前x个字符来索引它。 所以,如果你有大量的脚本,你的内容可能无法被正确地访问和索引(而你的网站的页面排名不会那么高)。

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