# 4-浏览器中的页面循环系统

# 01|消息队列和事件循环系统:页面是怎么"活"起来的?

# 消息队列

# 事件循环系统

# 02|webAPI:setTimeout是如何实现的?

  • 首先为了支持定时器的实现,浏览器增加来延时队列
  • 其次,由于消息队列排队和一下系统级别的限制,通过setTimeout设置的回调任务并非总是可以实时的被执行,这样就不能满足一些 实时性比较高的的需求了

hashmap结构,等到执行这个结构的时候,会计算hashmap中每个任务是否到期了,到期了就去执行,直到所有到期的任务都执行结束, 才会进入下一轮循环。

# 03|WebAPI:XMLHttpRequest是怎么实现的?

# 04|宏任务和微任务:不是所有任务都是一个待遇。

# 宏任务

  • 渲染事件(如解析DOM、计算布局、绘制)
  • 用户交互事件(如鼠标点击、滚动页面、放大缩小等);
  • Javascript脚本执行事件。
  • 网络请求完成、文件读写完成事件。

# 微任务-可以在实时性和效率之间做一个有效的权衡

# 05|Promise:使用Promise,告别回调函数

异步回调-回调地狱

# 06|async/await:使用同步的方式去写异步代码

生成器就是协程的一种实现方式。

Last Updated: 5/22/2022, 2:37:07 PM