25 # eventloop 执行流程

news2024/10/1 19:31:38

浏览器事件环

1、浏览器的进程

进程是计算机调度的基本单位,进程中包含着线程,浏览器是多进程进程,大致有下面几种

  • 每一个页卡都是进程(互不影响)
  • 浏览器也有一个主进程(用户界面)
  • 每一个页卡里都有一个渲染进程(也叫浏览器内核)
  • 网络进程(处理请求)
  • GPU 进程 3d 绘制
  • 第三方插件进程

2、渲染进程

渲染进程里面包含着多个线程

  • GUI 渲染线程(用于渲染页面)
  • js 引擎线程(和页面渲染时互斥)
  • 事件触发线程(独立的线程 EventLoop)
  • 事件 click、setTimeout、ajax 也是一个独立线程

3、宏任务和微任务

  • 宏任务:宿主环境提供的异步方法都是宏任务,比如:setTimeout、script、ui 渲染
  • 微任务:语言标准提供的 promise、muationObserver

js 执行流程图

在这里插入图片描述

例子

例子1:document.body.style.background = "seagreen" 的执行时机在 GUI 渲染的前面,所以刷新不会出现闪一下的效果

document.body.style.background = "salmon";
console.log(1);
Promise.resolve().then(() => {
    console.log(2);
    document.body.style.background = "seagreen";
});
console.log(3);

例子2:document.body.style.background = "seagreen" 的执行时机在 GUI 渲染的后面,所以刷新会出现闪一下的效果

document.body.style.background = "salmon";
console.log(1);
Promise.resolve().then(() => {
    setTimeout(() => {
        console.log(2);
        document.body.style.background = "seagreen";
    }, 0);
});
console.log(3);

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

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

相关文章

聊一聊行业的前景、就业方向和薪资待遇

软件测试行业是和软件开发相辅相成得一个行业,但目前大家对于软件测试行业的了解并不多,甚至很多学了软件测试的朋友也不是很了解。今天,就来给大家说一说,软件测试行业的前景、就业方向和薪资待遇。 岗位前景 很多小伙伴都曾听…

【PHPWord】PHPWord 根据word模板生成的内容动态生成目录以及页码

文章目录 一、需求分析二、PHPWord 中模板页码的设置三、模板内生成目录四、总结一、需求分析 在实际业务中,我们可能需要根据一些比较复杂的业务模板,生成对应的Word 文件。 本文将掌握: 使用模板配置页码使用模板插入目录二、PHPWord 中模板页码的设置 1.配置页码 注意…

dex2jar 报错 com.googlecode.d2j.DexException: not support version

​ 目录 ​ 一.问题发现 二.调查原因: 三. 根本原因调查: 四.解决问题 一.问题发现 使用dex2jar工具反编的时候,一输入指令,结果报com.googlecode.d2j.DexException: not support version错误(如下图) 异常情况.png 二.调查…

Autosar之自签名证书与CA证书

文章目录 一、安全传输1.框架2.如何实现传输安全?3. 对称加密和非对称加密的区别?4.伪随机数和真随机数5.数字签名 —— 验证完整性 & 认证数据来源6.为什么使用摘要算法的数字签名可以验证完整性?7.为什么数字签名可以认证数据来源&…

南开大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 南开大学(B)考研难度(☆☆☆☆☆☆) 南开大学计算机学科的研究工作始于1958年,是在实力雄厚的数学学科和物理学科的基础上发展起来的,是我国最早…

关于Gitee上传代码以后主页没有显示贡献度(没有显示小绿块)

事情起因:在一个闲暇的下午,吃着火锅唱着歌,突然!我发现我的Gitee有一片白 起初,没有人在意这场灾难 当我首次发现这个问题的时候,我毫无波澜的认为是Gitee出现了BUG。因为我的这些空白天数里都是有提交的…

Linux fork—进程控制

程序和进程 程序:是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁…)。进程:是一个抽象的概念,与操作系统原理联系紧密,进程是活跃的程序,占用系统资源&…

【备战秋招】每日一题:4月1日美团春招(二批)第二题:题面+题目思路 + C++/python/js/Go/java带注释

2023大厂笔试模拟练习网站(含题解) www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据,挂载到我们的OJ上,供大家学习交流,体会笔试难度。现已录入200道互联网大厂模拟练习题&…

大数据分析案例-基于Adaboost算法构建糖尿病预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

华为OD机试之打印机队列(Java源码)

打印机队列 题目描述 有5台打印机打印文件,每台打印机有自己的待打印队列。 因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的代先级,其中 数字越大优先级越高 打印机会从自己的待打印队列中选择优先级最高的文件来打印。 如…

5月29号软件资讯更新合集......

Paozhu C Admin 管理后台 1.4.0 版本发布 Paozhu C web 框架 1.4.0 版本发布。 提供一个完整的 admin 管理后台,支持图片管理,文件上传,修改百度开源编辑器 ueditor 上传管理程序为 c 框架自带 C ORM 框架,支持 HTTP/1 HTTP/2 …

InsCode AI 创作助手使用方法

CSDN最近推出了InsCode,可实现对话式AI辅助编程,能够帮助我们高效地创作文章,成倍提高生产力!让我们一起来看看如何使用吧! 首先,点击进入【发布】页面 右上角显示【创作助手】,可直接点击进入…

Tcl-10. 字符串比较,匹配,替换,类别,映射,string 相关

一、字符串比较:string compare, string equal 我们在 expr 和控制语句如 if、while 中可用比较运算符””、”!” 、“”、 “”等来进行字符串比较,但是如不注意的话就会产生问题。首先必须用双引号来将字符串值括起来,这样表达式语法分析…

​​​​Linux Shell 实现一键部署Oracle21 rpm包方式

oracle前言 Oracle开发的关系数据库产品因性能卓越而闻名,Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统,是世界最好的数据库产品。此外,Oracle公司还开发其他应用程序和软件。同时&#…

【CTF】2023Ciscn WEB方向题解

前言 太菜了太菜了,太久没打比赛啥也不会做,部分题目可去NSSCTF进行复现:NSSCTF 比赛体验一般,一黑灯基本上题都烂掉 unzip 这道题估计大家都会,算是一道原题了 参考:https://xz.aliyun.com/t/10533 由于环境没了,靠…

基于复旦微FMQL45T900 全国产ARM+FPGA核心板方案

XM745D 是一款基于上海复旦微电子 FMQL45T900 的全国产化 ARM 核心板。该核心板将复旦微的 FMQL45T900(与 XILINX 的 XC7Z045-2FFG900I 兼容)的最小系统集成在了一个 87*117mm 的 核心板上,可以作为一个核心模块,进行功能性扩展&a…

《QDebug 2023年5月》

一、Qt Widgets 问题交流 1.在 VS 中双击打开 ui 文件后,过一会儿 Qt Designer 就闪退 我是在 Windows11 VS2019/2022 环境遇到这个问题,解决方法是设置 Run in detached window 为 True。 点击 "扩展->QT VS Tools->Options"&#…

通俗易懂理解到底什么是DevOps技术(Windows程序员视角)

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来聊聊到底什么是DevOps。 相信很多小伙伴为什么搞懂DevOps,已经不知道查了多少论坛的帖子和资料了,但还是很困惑的话,那不妨来看看我这个帖子。希望能有助于你的…

CASA模型NPP及碳源、碳汇模拟

CASA模型 CASA模型是一个基于过程的遥感模型(Potteret al,1993;Potter et al,1994),耦合了生态系统生产力和土壤碳、氮通量,由网格化的全球气候、辐射、土壤和遥感植被指数数据集驱动。模型包括土壤有机物、微量气体通…

Android Jatpack--ViewModel

1.ViewModel ViewModel是Jetpack的一部分。 ViewModel类旨在以注重生命周期的方式存储和管理界面相关的数据。ViewModel类让数据可在发生屏幕旋转等配置更改后继续留存。 ViewModel出现的背景: ①职责分离 Android开发中,在页面较为简单的情况下&…