美文网首页
JavaScript 事件循环模型

JavaScript 事件循环模型

作者: BlueSkyBlue | 来源:发表于2020-04-28 19:37 被阅读0次

模型原理图

模型原理图

以定时器为例。假设我们指定的是1000毫秒。不是到了时间就执行。而是将回调函数交给分线程。到了时间点将回调函数放到Callback Queue中。点击函数也是一样的道理。当我们点击按钮的时候只是将函数放到Callback Queue中。

我们只有执行完stack中的初始化代码,才可以从Callback Queue中选择事件执行。

代码分类:

  1. 初始化代码
  2. 回调代码

初始化代码执行完之后才有可能执行回调代码。初始化代码会将回调函数交给Web APIs模块进行管理。等到了合适的时机才将这些回调函数放到Callback Queue中。初始化代码执行完毕之后再循环调用Callback Queue中的事件。

模型两个重要的组成部分:
事件(DOM/Ajax/定时器)管理模块
回调队列

实例

function fn1(){
  console.log('fn1')
}
fn1()

document.getElementById('btn').onClick = function(){
  console.log('Click Button.')
}

setTimeOut(function(){
  console.log('Timer is executing.')
}, 1000)

function fn2(){
  console.log('fn2')
}
fn2()

执行代码,我们发现先执行fn1和fn2。一秒之后执行“Timer is executing.”如果我们可以在一秒之内点击按钮,'Click Button'事件会在定时器事件之前执行。

相关重要概念

执行栈:所有代码在此空间中执行。
浏览器内核:JS主线程执行模块,其它模块
Callback Queue:任务队列,消息队列,事件队列,回调队列
事件轮询:初始化代码执行完之后,循环调用Callback Queue中的所有事件(Event Loop)。
事件驱动模型:上述原理图
请求响应模型:浏览器发送请求给服务器,服务器接收并处理请求,返回响应数据给浏览器。浏览器接收响应并渲染。

相关文章

  • JavaScript-事件循环

    参考JavaScript运行机制之事件循环(Event Loop)详解 从setTimeout说事件循环模型 单...

  • JavaScript 事件循环模型

    模型原理图 以定时器为例。假设我们指定的是1000毫秒。不是到了时间就执行。而是将回调函数交给分线程。到了时间点将...

  • JavaScript 事件循环和消息队列

    JavaScript 的并发模型基于"事件循环"。这个模型与像 C 或者 Objective-c 或者java 这...

  • 2019-11-18-本周学习周报

    学习总览 JavaScript 运行机制渲染引擎JavaScript引擎调用栈事件循环 CSS 盒模型的理解 HT...

  • javascript 并发模型与事件循环

    JavaScript 的并发模型基于“事件循环”。 一、运行时概念 Javascript执行引擎的主线程运行的时候...

  • Js事件循环

    列表 JavaScript事件循环 测试金字塔 stub JavaScript事件循环理解 javaScript语...

  • 进阶9.事件(学习笔记)

    事件 JavaScript和HTML的交互是通过事件实现的。JavaScript采用异步事件驱动编程模型,当文档、...

  • 事件

    事件 JavaScript和HTML的交互是通过事件实现的。JavaScript采用异步事件驱动编程模型,当文档、...

  • DOM2事件传播机制

    事件 JavaScript和HTML的交互是通过事件实现的。JavaScript采用异步事件驱动编程模型,当文档、...

  • 事件

    事件 JavaScript和HTML的交互是通过事件实现的。JavaScript采用异步事件驱动编程模型,当文档、...

网友评论

      本文标题:JavaScript 事件循环模型

      本文链接:https://www.haomeiwen.com/subject/javbwhtx.html