事件轮询

事件轮询

解释

  主线程从任务队列中读取事件,这个过程是循环不断的。

  所有任务都可以分为:同步任务(都在主线程)异步任务(任务队列中)

运行的机制

  1. 所有同步任务都在主线程上执行,形成一个执行栈(每执行一条代码,向栈中压入这条代码)。

  2. 主线程之外,还存在一个"任务队列"。存放异步执行的代码,如定时器、事件监听回调函数等,进入等待状态

  3. 一旦主线程中的所有同步任务执行完毕,就会读取”任务队列”,看看里面有哪些任务。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。

  4. 主线程不断重复上面的第三步(轮询)

主线程与任务列表的示意图

主线程与任务列表

任务队列:执行的是先进先出

Event Loop(事件轮询)

事件轮询示意图


  转载请注明: 迷一样的自信 事件轮询

 上一篇
防抖与节流 防抖与节流
防抖与节流函数防抖(debounce)  当持续触发事件时,一定事件段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发事件,就重新开始延时 function debounce(fn, wait) { let
2018-01-20
下一篇 
事件 事件
事件事件中的名词 事件目标(event target):发生的事件或与之相关的对象(常见window,document,element) 事件类型(event type):什么类型事件的字符串(click,blur) 事件处理程序或事件
2018-01-06
  目录