- 博客(3)
- 收藏
- 关注
原创 关于浏览器的渲染
如果主线程解析到script位置,会停止解析HTML,转而等到JS文件下载好,并将全局代码解析执行完成后,才能继续解析HTML。如果主线程解析到link位置,此时外部的CSS文件还没有下载解析好,主线程不会等地啊,继续解析后续的HTML。在这过程中,很多预设值会变成绝对值,比如red会变成rgb(255, 0, 0),相对单位会变成绝对单位,比如em会变成px。当这一步完成后,会得到DOM树和CSSOM树,浏览器的默认、内部和外部、以及行内样式均会包含在CSSOM树中。例如节点的宽高、相对包含块的位置。
2023-08-03 08:00:00 28
原创 关于事件循环的理解
根据W3C官方的解释,每个任务有不同的类型,同类型的任务必须在同一个队列,不同的任务可以属于不同的队列。当其他线程完成时,将事先传递的回调函数包装成任务,加入到消息队列的末尾排队,等待主线程的调度执行。在Chrome的源码中,它开启一个不会结束的`for`循环,每次循环从消息队列中取出第一个任务执行,而其他线程只需要在合适的时候将任务加入到队列末尾即可。按照W3C的标准,浏览器实现计时器时,如果嵌套层级超过5层,则会带有4ms的最少时间,这样在计时时间少于4ms时又带来了偏差。
2023-08-02 17:08:21 49
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人