继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

测试模拟 白屏 / FOUC

BIG阳
关注TA
已关注
手记 471
粉丝 73
获赞 458

白屏和FOUC

白屏与无样式内容闪烁(FOUC)是因为不同浏览器加载与显示页面的机制不同而造成的。

我们可以通过一个实验来进行测试和模拟白屏、FOUC的现象,让我们更好的理解白屏、FOUC。

测试demo

https://github.com/evenyao/whitescreen-fouc-test
步骤README.md中已经大概有了,下面整合一些截图,方便理解。

具体分析

白屏测试 / 且js放在css之后

webp

HTML

webp

CSS加载完成后样式就出现了,js未加载完成,但并不影响样式显现

FOUC测试 (使用FireFox浏览器)

webp

HTML优先被加载出来了,但我们没有看到任何样式呈现

webp

加载完成之后,我们看到了样式,即出现了FOUC

其他

白屏测试 / 且js放在CSS之前

webp

HTML

webp

可以看到CSS已经加载完成,但因为js并未加载完成,产生了堵塞,从而导致了样式没有展现


webp

直到js也全部加载完成之后,样式才得以出现




这个时候我们来测试一下 async


白屏测试 / 且js放在css之后 但加了async异步

webp

HTML

webp

可以看到即使js放在前面,且没有加载完成,样式还是成功显现了

webp

测试async异步效果成功

defer也是同理,同时也更好的理解了异步加载。
关于白屏、FOUC和异步加载的概念,参考之前写的初涉 JavaScript



作者:evenyao
链接:https://www.jianshu.com/p/bbec132240eb


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP