白屏的基本原因可以归结为网速和静态资源
1)css文件加载需要一些时间,在加载的过程中页面是空白的
解决:可以考虑将css代码前置和内联
2)首屏无实际的数据内容,等待异步加载数据,再渲染页面,导致白屏
解决:首屏直接同步渲染html,后续的滚屏等操作再采用异步请求数据和渲染html
3)首屏内联js的执行,会阻塞页面的渲染
解决:尽量不在首屏html代码中放置内联脚本
还有一些其他的解决办法:
1)在服务器端,使用模板引擎渲染所有页面
1、减少文件加载体积,如html压缩,js压缩
2、加快js执行速度 比如常见的无限滚动的页面,可以使用js先渲染一个屏幕范围内的东西
3、提供一些友好的交互,比如提供一些假的滚动条
4、使用本地存储处理静态文件