问题描述
摘自Yahoo的加速网站最佳实践:
脚本引起的问题是它们阻止并行下载。HTTP/1.1规范建议浏览器每个主机名并行下载最多两个组件。如果您从多个主机名提供图像,则可以并行进行两次以上的下载。但是,在下载脚本时,即使使用不同的主机名,浏览器也不会启动任何其他下载。
在某些情况下,将脚本移到底部并不容易。例如,如果脚本使用document.write插入页面内容的一部分,则无法将其在页面中移至较低位置。可能还会存在范围界定问题。在许多情况下,有一些方法可以解决这些情况。
经常出现的另一种建议是使用延迟脚本。DEFER属性指示脚本不包含document.write,这是浏览器可以继续呈现的线索。不幸的是,Firefox不支持DEFER属性。在Internet Explorer中,该脚本可能会被延迟,但不会达到所需的程度。如果可以推迟脚本,则也可以将其移至页面底部。这将使您的网页加载更快。
因此,通常最好将它们放在底部。然而,它并不总是可能的,而且往往不会使 该 多大的差别呢。
解决方法
大多数javascript和Web开发书籍/文章都说您必须将CSS放在head标签中,并将javascript放在页面底部。
但是,当我打开著名网站的html源代码时,我发现它们将一些js文件放在head标签中。
两种方法的优缺点是什么,何时使用哪种方法?