42白屏和FOUC async和defer

1. CSS和JS在网页中的放置顺序是怎样的?

  • CSS一般放置在head标签里面,样式先行的话在加载HTML内容时可以同时渲染样式,避免FOUC。
  • JS一般放在body标签后面,JS属于阻塞加载,如果放置在前面则必须等待JS文件加载、解析,这无疑影响页面加载速度;再者JS里面要操作节点也要等待HTML先行加载。

2. 解释白屏和FOUC

  • 白屏
    白屏是由于渲染时间过长导致浏览器视窗出现白屏现象——一片空白。
    将CSS放在底部、使用@import引用样式等都可能导致白屏。
  • FOUC
    FOUC为Flash of unstyled content的缩写,译作无样式内容闪烁。
    由于先加载HTML内容后再加载CSS对无样式的HTML进行渲染产生的闪烁现象。
    将CSS放在底部可能引起FOUC。

3. async和defer的作用是什么?有什么区别

JS外部引用的三种方式:

  • <script src="script.js"></script>
    浏览器会立即加载并执行文件脚本,此过程不等后续HTML元素的加载而立即加载执行。
  • <script async src="script.js"></script>
    浏览器会等到后续HTML元素一起加载并立即执行脚本。
  • <script defer src="script.js"></script>
    浏览器会延迟到与后续HTML元素一起加载并在所有元素解析完之后才执行脚本。
    参见下图:
JS引入方式对比

4. 简述网页的渲染机制

1、解析HTML,形成DOM树;
2、解析CSS,形成CSSOM树;
3、两者进行合成渲染,形成渲染树;
4、渲染树在浏览器中进行定位布局,最终将页面呈现在浏览器上。
参见下图:



作者:nineSean
链接:https://www.jianshu.com/p/3ff0d0146e24
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值