浏览器渲染与event loop
线程

1.GUI渲染线程(一个)
2.JS引擎线程(一个)
3.事件触发线程
4.定时器触发线程(多个)
5.异步http请求线程(多个)
线程执行
页面加载时
GUI渲染引擎和JS执行引擎互斥,当GUI渲染引擎解析html处理到script标签,会立即挂起解析html的任务,然后开始解析js代码,这里就是执行一个宏任务。直到所有这个宏任务执行完成后,继续执行html解析渲染
JS是单线程指的是执行引擎是单线程
宏任务微任务
宏任务是由宿主发起的,而微任务由JavaScript自身发起。

Event loop
JS是基于事件驱动的,其需要一种事件循环机制和来进行线程的配合
js执行引擎(主线程)在空闲时判断是否有未执行的微任务,有则一个个将微任务中的回调函数放到主线程中执行,直到微任务队列清空;微队列清空后判断宏任务队列
浏览器渲染与event loop的更多相关文章
- 浏览器中的 Event Loop
当我们执行 JS 代码的时候其实就是往执行栈中放入函数,那么遇到异步代码的时候该怎么办?其实当遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) 队列中.一旦执行栈为空, ...
- js 在浏览器中的event loop事件队列
目录 前言 认识一个栈两个队列 执行过程 异步任务怎么分配 简单例子 难一点的例子 前言 以下内容是js在浏览器中的事件队列执行,与在nodejs中有所区别,请注意. 都说js是单线程的,不过它本身其 ...
- 浏览器与Node的事件循环(Event Loop)有何区别?
前言 本文我们将会介绍 JS 实现异步的原理,并且了解了在浏览器和 Node 中 Event Loop 其实是不相同的. 一.线程与进程 1. 概念 我们经常说 JS 是单线程执行的,指的是一个进程里 ...
- [转]Event loop——浏览器和Node区别
最近对Event loop比较感兴趣,所以了解了一下.但是发现整个Event loop尽管有很多篇文章,但是没有一篇可以看完就对它所有内容都了解的文章.大部分的文章都只阐述了浏览器或者Node二者之一 ...
- Event Loop详解
1.进程,单线程与多线 进程: 运行的程序就是一个进程,比如你正在运行的浏览器,它会有一个进程. 线程: 程序中独立运行的代码段. 一个进程由单个或多个线程组成,线程是负责执行代码的. 2.单线程与多 ...
- js的事件循环(Event Loop)
(本文从掘金小册整理) 首先介绍一下几个概念 进程与线程 相信大家经常会听到 JS 是单线程执行的,但是你是否疑惑过什么是线程? 讲到线程,那么肯定也得说一下进程.本质上来说,两个名词都是 CPU 工 ...
- HTML Standard系列:Event loop、requestIdleCallback 和 requestAnimationFrame
HTML Standard系列:Event loop.requestIdleCallback 和 requestAnimationFrame - 掘金 https://juejin.im/post/5 ...
- JS的Event Loop
JavaScript是单线程的,只有一个执行栈,一次只能做一件事. 在浏览器中,却“好像”可以同时做几件事:点击,发送请求,执行多个函数,解析代码. 这是因为浏览器实现的Event Loop机制. W ...
- 从event loop规范探究javaScript异步及浏览器更新渲染时机
异步的思考 event loops隐藏得比较深,很多人对它很陌生.但提起异步,相信每个人都知道.异步背后的“靠山”就是event loops.这里的异步准确的说应该叫浏览器的event loops或者 ...
- 浏览器组成、线程及event loop
浏览器组成 User interface: a. Every part of the browser display, except the window. b. The address bar, b ...
随机推荐
- Azure Artifacts--全平台的程序包管理仓库(支持nuget)
写在前面 大部分一定规模的团队都有搭建私有nuget的需求:例如: MyGet BaGet 而我们使用的Azure DevOps 平台本身就提供了Artifacts, Artifacts不单只支持nu ...
- 多功能游戏工具箱 - Watt Toolkit V4.4
Watt Toolkit Watt Toolkit 工具箱能够让 Steam 平台的玩家们享受更加出色的游戏体验,工具箱包含多种实用的功能,支持快速切换登录账号,玩家还可以通过这款工具编辑 Steam ...
- CSP-J初赛知识点
就要初赛了,知识点还没怎么看,今天花一个小时来整理一下,希望大家在初赛中有个好成绩## 计算机常识IT : Information Technology 信息技术代别 年代 ...
- 如何查看库函数实现的某些函数(strlen,strcmp,strcpy等)
我们拿strlen()作为举例(编译环境为:VS2022) strlen()引用的头文件为 string.h,如下进行操作 ps:打开strlen.c文件 便可以看到库函数对于strlen()的实现, ...
- NetCore使用ZipFile 和ZipOutputStream
一.序言 环境:NetCore 3.1 项目类型:Web 二.使用ZipFile压缩本地文件 var filePath = Directory.GetCurrentDirectory() + $@&q ...
- Zstack迁移实战记录1
https://blog.csdn.net/weixin_43767046/article/details/113748775 这段时间除了那个重度烤机测试(上面链接),还在做另一件事,想再做一个服务 ...
- CRT 与 exCRT
感觉网上很多写的都不是很清楚啊 awa. CRT 就是解这个方程 \(\begin{cases}x\equiv r_1 \pmod {m_1}\\ x\equiv r_2 \pmod {m_2} \\ ...
- 免杀之:Mimikatz 免杀过杀软,思路学习
免杀之:Mimikatz 免杀过杀软 目录 免杀之:Mimikatz 免杀过杀软 1 环境准备 2 处理过程 2.1 生成原始的Mimikatz程序 2.2 定位到代码或字符串上特征绕过 2.3 定位 ...
- openwrt 网络检测脚本
背景 openwrt 有些固件不太稳定,会时不时的断网,导致家里无法上网,遇到这种情况只能手动重启openwrt设备,该操作不方便,作为一个极客爱好者,那肯定是要实现自动化处理的了,写一个简单的脚本加 ...
- unity编辑器相机投影,正交切换
正常情况投影相机 切换成正交相机时,此时编辑器向前移动会如图所示被截断