Q: 浏览器加载白屏是什么原因?
A:
Author: @heaven
请求发出前可能有:
- 资源不合法,如跨域,https 用 http 等等,csp 等等
- 请求队列太多或者本资源优先级不够高,资源被 delay
- dns 出问题,劫持,自己开了代理,dns 服务器挂了等等
请求发送过程中可能有:
- 没有到达服务器,如 cdn 挂了
- 到达服务器但是没有到达处理程序,如在队列里堆积,403,401 等等
- 到达了处理程序,但 500 了(假设 500 也算白屏的话,因为可能有只是 catch 了错误,啥也没干)
- 成功运行,但是迟迟没有返回,如代码本身耗时久,死循环,rpc 慢等等
请求返回之后可能有:
- 解析阶段跪了,如要 json 返回了一段 text,json/js 不合规范等等
- 执行阶段跪了,如 render 挂了(假设没有针对这一情况做处理,那么就白屏了),死循环,也有可能是纯粹代码写错了,比如 data 写成了 date,css 写错比如设置了 display:none 等等
其它:
- 突然断网了
- 客户端的锅
Roast:
这个题分阶段阐述更为清晰,笼统的讲述容易有所遗漏。 思考时,需要考虑到用户环境、前端部署、后端服务三个方面的内容。