美文网首页
js的事件循环和异步

js的事件循环和异步

作者: web前端_潘哥哥 | 来源:发表于2022-08-25 22:03 被阅读0次

聊聊js的异步

首先,聊异步,得先弄清楚为什么不用同步,用同步会有什么问题,我们先明确一点,js的执行是单线程的,因为它是运行在浏览器渲染主线程中的,而渲染主线程只有一个。

如果同步的话,那么来一个计时器就得等多少秒才能执行任务,然后才能去执行后面的代码,非常浪费时间,而且渲染主线程不仅仅是用来执行js的,还有很多其他的工作要做,比如解析html,css,计算样式,布局,处理图层,页面每秒刷新60次等等.....

如果说使用同步的话,这些任务都得卡在那里,就会给用户一种卡死的感觉,体验很不好。

所以需要采用异步的方式处理js代码。那么具体又是怎么操作的呢?这就涉及到了事件循环了。

阐述一下js的事件循环?

事件循环又叫消息循环,是浏览器渲染主线程的工作方式

过去把消息队列简单的分为宏任务和微任务队列两种,但是这种说法已经无法满足这么复杂的浏览器环境,取而代之的是另一种更加灵活多变的处理方式

根据W3C官方的解释,每个任务有不同的类型,同类型的任务必须在同一个队列,不同类型的任务可以属于不同的队列,不同任务队列有不同的优先级,在一次事件循环中,由浏览器自己决定去取哪一个队列的任务去执行,但是呢,浏览器必须要有一个微任务队列,并且该队列的优先级是最高的,必须最先调度执行

事件循环是异步的实现方式

单线程是异步产生的原因

相关文章

  • JavaScript是如何工作的:事件循环和异步编程的崛起 +

    摘要: 深度理解JS事件循环!!! 原文:JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 ...

  • js事件循环

    js 是单线程的, js 的异步事件就是依赖于事件循环机制 事件循环 首先,我们来解释下事件循环是个什么东西: 就...

  • 20211021

    1、js里的事件循环机制(event loop)答:js事件循环中有异步队列有两种:宏任务队列(macro)和微任...

  • js的事件循环和异步

    聊聊js的异步 首先,聊异步,得先弄清楚为什么不用同步,用同步会有什么问题,我们先明确一点,js的执行是单线程的,...

  • 事件循环机制

    事件循环(evenloop) 事件循环机制是宿主环境提供的。js中处理异步,增加了任务队列的概念(你不知道的js中...

  • JS浏览器事件循环和任务队列

    JS的异步机制由事件循环和任务队列构成。JS本身是单线程语言,所谓异步依赖于浏览器或者操作系统等完成。JavaSc...

  • Node事件循环

    Node.js 事件循环机制 Node.js 采用事件驱动和异步 I/O 的方式,实现了一个单线程、高并发的 Ja...

  • 浏览器中的事件循环与Node中的事件循环

    浏览器中的事件循环 JS线程读取并执行JS代码 执行JS代码的过程中,指定异步的操作给对应的线程处理 异步线程处理...

  • js事件循环机制

    js事件循环机制 一、 执行栈 二、 任务队列(同步任务和异步任务) 三、 宏任务和微任务 四、 浏览器下的事件循...

  • 12.事件循环-微任务与宏任务

    事件循环机制js中的代码,其上下文进入执行栈之后,引擎会判断是不是异步操作(如DOM事件、timer、异步请求)。...

网友评论

      本文标题:js的事件循环和异步

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