规则6 将脚本放在底部
1. 脚本下载时,将阻塞 后面内容的呈现 和 后面组件的下载 。因为脚本可能会使用document.write来修改页面内容,因此浏览器会等待,以确保页面能恰当地布局;还有一个原因是确保脚本的执行顺序。
2. 并行下载
HTTP1.1 建议浏览器从每个主机名并行的下载两个组件,IE和Firefox都遵守这一建议,但可以修改浏览器配置;
也可以通过使用CNAME(DNS别名)来讲组件分别放到多个主机名中,Yahoo!研究表明,使用2个主机名比使用1,4,或10和主机名性能更好;
脚本下载会阻塞并行下载和页面呈现,执行时会阻塞页面呈现。
3. 最佳情况:将脚本放在底部
defer属性指定不需要等待该脚本下载和执行,页面呈现和组件下载不用阻塞,defer属性的脚本立即下载,延时执行,但会在DOMContentLoaded事件之前执行;
async属性脚本立即下载,异步执行,页面呈现和组件下载不用阻塞,但是脚本可能在DOMContentLoaded事件之前或之后执行。