(6).Lazy Load Images
这条策略实际上并不一定能减少请求数,但是却能在某些条件下或者页面
刚加载时减少请求数。对于图片而言,在页面刚加载的时候可以只加载第一屏,
当用户继续往后滚屏的时候才加载后续的图片。这样一来,假如用户只对第一屏
的内容感兴趣时,那剩余的图片请求就都节省了。有啊首页曾经的做法是在加载
的时候把第一屏之后的图片地址缓存在 Textarea 标签中,待用户往下滚屏的时
候才“惰性”加载。
2.将外部脚本置底
前文有谈到,浏览器是可以并发请求的,这一特点使得其能够更快的加载
资源,然而外链脚本在加载时却会阻塞其他资源,例如在脚本加载完成之前,它
后面的图片、样式以及其他脚本都处于阻塞状态,直到脚本加载完成后才会开始
加载。如果将脚本放在比较靠前的位置,则会影响整个页面的加载速度从而影响
用户体验。解决这一问题的方法有很多,在这里有比较详细的介绍(这里是译文
和更详细的例子),而最简单可依赖的方法就是将脚本尽可能的往后挪,减少对
并发下载的影响。
3.异步执行 inline 脚本
inline 脚本对性能的影响与外部脚本相比,是有过之而无不及。首页,与
外部脚本一样,inline 脚本在执行的时候一样会阻塞并发请求,除此之外,由
于浏览器在页面处理方面是单线程的,当 inline 脚本在页面渲染之前执行时,
页面的渲染工作则会被推迟。简而言之,inline 脚本在执行的时候,页面处于
空白状态。鉴于以上两点原因,建议将执行时间较长的 inline 脚本异步执行,
异步的方式有很多种,例如使用 script 元素的 defer 属性(存在兼容性问题和其
他一些问题,例如不能使用)、使用 setTimeout,此外,在 HTML5 中引入了 Web
Workers 的机制,恰恰可以解决此类问题。
Load Javascript
随着 Javascript 框架的流行,越来越多的站点也使用起了框架。不过,一
个框架往往包括了很多的功能实现,这些功能并不是每一个页面都需要的,如果
下载了不需要的脚本则算得上是一种资源浪费-既浪费了带宽又浪费了执行花费
的时间。目前的做法大概有两种,一种是为那些流量特别大的页面专门定制一个
评论0
最新资源