背景
在页面的性能优化中,资源加载是决定页面展示时间的重中之重。为了减少资源的请求,有两个常见的解决方案:
1.一个是SSR服务端渲染页面,这样可以减少页面的初始化数据请求,页面在服务端接受到请求时进行数据请求与渲染页面,最终返回给客户端一个可以直接展示的html页面(直出)。但这个方案需要服务器的支持。
2.另一方是SSG服务端生成页面。与SSR的区别是,SSG在构建时就会生成html文件,后续的数据获取需要客户端加载了页面资源后再进行。SSG的优势是首屏加载速度快,可以直接分发资源到CDN,减少服务器压力。更进一步可以使用离线包方案,客户端使用本地资源打开页面,最大化减少网络的影响。
目前我们采用了第二种方案:SSG与离线包相结合。但在动态页面中,页面快速展示后,可以看到明显的页面卡顿,这是由于页面需要从服务端获取动态数据。本文便是为了解决这一问题。
期望效果
期望能结合目前的离线包方案在页面展示时,没有卡顿,能直接获取到动态数据并展示。
注意事项:
1.目前项目中存在离线包与在线包两种环境的页面,离线包方式是通过客户端代理页面的方式实现,两个包的域名不同,所以在获取动态数据时,需要注意不同包的数据获取。
2.部分页面的数据与当前时间状态深度绑定,这种情况下应避免得页面预取数据与页面展示相隔太久。
解决方案
1.例如百度(CloudHybrid)、腾讯(