使用脚本时,对于所有位于脚本以下的内容,逐步呈现都会被阻塞了。将脚本放在页面越靠下的地方,意味着更多的内容能够逐步地呈现。
并行下载
对响应时间影响最大的是页面中组件的数量。
HTTP1.1规范建议浏览器从每个主机名并行地下载两个组件。
将并行下载数增加到每个主机名超过两个也是有可能的,可以使用CNAME(DNS别名)来将组件分别放到多个主机名中。
增加并行下载数量的优劣取决于你的宽带和CPU速度,过多的并行下载反而会降低性能。
脚本阻塞下载
在下载脚本时并行下载是被禁止的,原因如下:
1.脚本可能使用document.write来修改页面,因此浏览器会等待,以确保页面能够恰当地布局。
2.在下载脚本时浏览器阻塞并行下载的另一个原因是为了保证脚本能够按照正确的顺序执行,不按照顺序执行就会导致JavaScript错误。
最差情况:将脚本放在顶部
脚本对Web页面的影响如下:
1.脚本会阻塞对其后面内容的呈现。
2.脚本会阻塞对其后面组件的下载。
脚本放在顶部会导致整个页面的呈现被阻塞,因而会产生白屏现象。逐步呈现对于良好的用户体验非常重要,但缓慢的脚本下载延迟了用户所期待的的反馈。
最佳情况:将脚本放在底部
放置脚本最好的地方就是页面的底部(虽然请求时间长但对页面的影响很小)。这不会阻止页面内容的呈现,而且页面中的可视组件可以尽快下载。
正确的放置
另外一种建议就是使用延迟脚本。
defer属性表明脚本不包含document.write,浏览器得到这一线索就可以继续进行呈现。如果一个脚本可以延迟,那么他一定可以转移到页面的底部。这是加速Web页面的最佳方式。