Recall:JS EventLoop

news2024/11/25 23:02:44

有时候一段代码没有达到你想要的效果,可能加上setTimeout就好了  

之前对事件循环一知半解,今天重新深入理解一下😂

宏任务

JS是单线程的,但是浏览器是多线程的,当 JS 需要执行异步任务时,浏览器会另外启动一个线程去执行该任务。也就是说,“JS 是单线程的”指的是执行 JS 代码的线程只有一个,是浏览器提供的 JS 引擎线程(主线程)。浏览器中还有定时器线程和 HTTP 请求线程等,这些线程主要不是来跑 JS 代码的。

 如图所示举个栗子:setTiemout(callback,ms)

直观上看是主线程被堵塞 100ms,然后继续执行callback。但是实际上这两者是并行的关系,it will run in parallel。回到事件环,事件环分离出一个线程处理异步任务,待完成后,又重新回到主线程,去执行回调函数。

this is Task queue 

 and then, we gone to render the page, switch to another thread

浏览器另外的线程会处理页面渲染的更新

 cool lets see the microTask 

微任务可以发生在事件循环的任意一个阶段

微任务就是一个需要异步执行的函数,执行时机是在主函数执行结束之后、当前宏任务结束之前。

不过要搞清楚微任务系统是怎么运转起来的,就得站在 V8 引擎的层面来分析下。

我们知道当 JavaScript 执行一段脚本的时候,V8 会为其创建一个全局执行上下文,在创建全局执行上下文的同时,V8 引擎也会在内部创建一个微任务队列。顾名思义,这个微任务队列就是用来存放微任务的,因为在当前宏任务执行的过程中,有时候会产生多个微任务,这时候就需要使用这个微任务队列来保存这些微任务了。不过这个微任务队列是给 V8 引擎内部使用的,所以你是无法通过 JavaScript 直接访问的。

也就是说每个宏任务都关联了一个微任务队列。

结果 : 1 4 3 2

宏任务和微任务之间存在着 : DOM渲染

优先级: 宏任务 > DOM渲染  > 微任务


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业架构概述及业务架构详解

编辑导语:企业架构可以辅助企业完成业务及IT战略规划,还是企业信息化规划的核心,也有助于个人职业的健康长远发展。本文作者对企业架构的全景以及业务架构设计进行了分析,感兴趣的小伙伴们一起来看一下吧。 1)对公司而…

PyTorch 加载 Mask R-CNN 预训练模型并 fine-tuning

目录1 Mask R-CNN 原理(简单版)2 ROI Align3 PyTorch 加载预训练模型1 Mask R-CNN 原理(简单版) Mask R-CNN 是一个实例分割(Instance segmentation)算法,主要是在目标检测的基础上再进行分割。 Mask R-CNN 算法主要是 Faster R-CNN FCN&…

算法练习题(涉外黄成老师)

1.带锁的门在走廊上有n个带锁的门,从1到n依次编号。最初所有的门都是关着的。我们从门前经过n次,每一次都从1号门开始。在第i次经过时(i1,2,…,n)我们改变i的整数倍号锁的状态:如果门是关的,就打开它;如果门是打开的,就关上它。在…

CEC2015:(二)动态多目标野狗优化算法DMODOA求解DIMP2、dMOP2、dMOP2iso、dMOP2dec(提供Matlab代码)

一、cec2015中测试函数DIMP2、dMOP2、dMOP2iso、dMOP2dec详细信息 CEC2015:动态多目标测试函数之DIMP2、dMOP2、dMOP2iso、dMOP2dec详细信息 二、动态多目标野狗优化算法 多目标野狗优化算法(Multi-Objective Dingo Optimization Algorithm&#xff0…

#入坑keychron#你还没一起入坑吗?

经济和科技飞速发展的今天,我们早已不在像从前那样有电脑玩就行,现在的我们追求的是更高的配置、更好的体验,就像从前一碗泡面就是最高的理想,而现在最少都得有根泡面搭档才能勉强接受,连泡面都有搭档,电脑…

web前端期末大作业:旅游网页设计与实现——个人旅游博客(4页)HTML+CSS

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

【后端】初识HTTP_2

我们学习的HTTP协议,是应用层里面最广泛使用的协议~ 我们主要是学习HTTP的请求响应的报文格式 我们可以借助抓包工具来学习,抓包抓到的是文本格式~~ 根据上节内容 我们大概了解了请求和响应的格式 请求有4部分: (1&#xff…

leetcode 51. N皇后 回溯法求解(c++版本)

题目描述 简单来说就给一个N*N的棋盘 棋盘上的每一列每一行以及每一个对角不能出现两个皇后 因此明确以下几点 要找出所有可能的解法也是采用回溯法进行求解(具体在下面进行详解) 用下面一张示例图来说明回溯法的思路 说白了就是进行搜索,…

java项目-第102期基于ssm的校园二手交易平台-java毕业设计

java项目-第102期基于ssm的校园二手交易平台 【源码请到资源专栏下载】 1、项目简述 Hi,大家好,今天分享的源码是基于ssm的校园二手交易平台。 该交易平台分为两部分,前台和后台。用户在前台进行商品选购以及交易;管理员登录后台可…

python-(6-3-3)爬虫---requests入门(对参数封装)

文章目录一 需求二 分析三 代码四 补充说明一 需求 爬取豆瓣电影的“纪录片”的电影信息数据 二 分析 老规矩,先在网页的“检查”中提取我们需要的信息 如下图所示。在“纪录片”那一页面,选择"network"----“XHR”----“preview”。 我们…

【附源码】Python计算机毕业设计面向社区的购物平台系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

java计算机毕业设计ssm+vue网络考试信息网站

项目介绍 对网络考试系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致&…

五大模型看深度学习用于时序预测的最新进展

引言 在以往的时序预测中,大部分使用的是基于统计和机器学习的一些方法。然而,由于深度学习在时间序列的预测中表现并不是很好,且部分论文表述,在训练时间方面,用 Transformer、Informer 、Logtrace 等模型来做时间序…

ESP32 入门笔记06: FreeRTOS+《两只老虎》 (ESP32 for Arduino IDE)

ESP32FreeRTOS Esp32 模块中已经提供了 FreeRTOS(实时操作系统)固件。 FreeRTOS有助于提高系统性能和管理模块的资源。FreeRTOS允许用户处理多项任务,如测量传感器读数,发出网络请求,控制电机速度等,所有…

旅游推荐系统

摘要 随着社会的发展,人们生活水平的提高,旅游逐渐成为人们生活中的重要活动,2019年国内旅游人数超过60亿人次。并且,旅游业已经成为了我国经济发展的一个重要支柱,近年来我国旅游业对GDP贡献值呈上升趋势。2019年&am…

【附源码】计算机毕业设计java装修服务分析系统设计与实现

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【数据结构】链表OJ特别篇 —— 面试情景带你深度剖析 环形链表系列问题 复制带随机指针的链表

文章目录0. 前言1. 环形链表2. 环形链表延伸问题3. 环形链表 II4. 复制带随机指针的链表5. 结语0. 前言 Hello,大家好,我是anduin。这期的内容依然是链表OJ。但与前两期不同的是,这次我会模拟面试的情景,由浅入深,以生…

冶金行业数字化供应链管理系统:赋能企业端到端供应链优化,推动行业数字化变革

作为国之重器,冶金行业在国家大基建战略的支持下,迎来了新一轮的发展良机,然而冶金行业整体产能过剩、对于产业链下游依赖严重等情况依然突出,机遇与挑战并存,在此环境下,如何在激烈的竞争中提升企业自身竞…

多对一和一对多的处理P21,P22

多对一: 按照查询嵌套处理: StudentMapper:(接口很简单需要返回一个List) package com.Li.dao;import com.Li.pojo.Student; import org.apache.ibatis.annotations.Select;import java.util.List;public interface …

无人机和热成像

当它变得可见时,看不见的世界是一个令人惊叹的景象。 热成像就是这样,透过使用专门的摄影机和技术,使看不见的红外光谱可见。 我们周围那个无形的世界隐藏着什么,这是一个完整的隐藏世界。 图片来源:Keith Davis/热成像…