在多页模式下,页面之间切换时,页面需要加载的静态资源比较多时,页面打开时需要较长的时间,那么时间都消耗在哪里呢?先来看看从输入url到页面呈现的流程吧
页面呈现流程(详细的过程,可参考)
- 输入url,浏览器会看本地维护的dns表中是否有相应的记录,如果有则取得该url对应的ip,并与改机器建立http连接,如果没有则要dns解析
- 建立http连接后,就可以进行资源的传输。取得资源后进行dom解析、css解析、构建layout tree、paint操作
由此可知,要想缩短页面呈现时间,可以省去dns解析时间、可以减少资源下载的传输时间。让我们接下来看看这两部分时间怎么优化点
提前dns解析
- 怎么做到提前进行dns解析这个预备事项呢?dns-prefetch
- 怎么使用呢?
href部分填上涉及到第三方域名
<link rel="dns-prefetch" href="https://fonts.gstatic.com/" >
减少资源下载传输时间
提前获取资源,让浏览器帮我们缓存起来,这样就能命中缓冲
- 资源预取: 涉及页面跳转,A页面跳转到B页面,那么需要在A页面中请求B页面的资源,同时不能影响A页面的渲染过程
<link rel="prefetch" href="资源完整路径">
- 本地存储网络资源:访问过的页面,只要资源没更新就能从本地获得(不管页面是否被关闭),可参考使用servicework进行网络瘦身
参考