在改进网站性能的最佳实践http://developer.yahoo.com/performance/rules.html中,史蒂夫·索德斯提到了一条规则"将脚本移到底部".这有点令人困惑.实际上,我注意到很多网页没有把脚本放在底部,而YSlow仍然标记这些页面的A.
那么,我何时应该遵循"将脚本放在底部"的规则?
当用户从您的站点请求页面时,页面HTML将开始流式传输到浏览器.一旦浏览器遇到外部图像,脚本,CSS文件等的标记,它将立即开始同时下载该文件.
如果您将脚本放在页面底部,它们将最后加载.换句话说,您将首先加载您的页面/应用程序的HTML内容/结构/ css /图像,并且可以更快地在浏览器中显示某些内容; 您的用户在看到应用程序中的某些内容之前不必等待脚本完成下载.
页面顶部具有脚本的页面仍然得分为"A"的原因是因为这不如可以进行的其他性能改进那么重要.
每条规则都是加权的,因此有些规则比其他规则更能影响ySlow等级.
我总是把脚本放在底部.在页面顶部需要脚本的原因很少.我能想到的唯一原因是你需要你的JavaScript 在页面中的任何其他地方之前立即执行,这是非常罕见的.
有时,您别无选择,只能将脚本放在页面中的特定位置.但是,如果您将脚本放在页面底部,浏览器将不会中断其渲染以加载JS引擎来处理您的脚本(如果您有多次运行循环,这可能会很昂贵)并且可能会显示及早查看页面.
我不确定这是一个性能问题(可能),但是我在微软的演示文稿中,并且主持人说网络蜘蛛有时只读取网页上的第一个x字符数量来索引它.因此,如果您有大量脚本,则可能无法正确访问和索引您的内容(并且您的网站的网页排名不会那么高).
代码可能引用尚未实例化的DOM对象,但这是我能想到的最明显的原因.