js宏任务都有哪些(JavaScript 操作宏任务与微任务)
类别:编程学习 浏览量:1287
时间:2021-10-21 08:21:04 js宏任务都有哪些
JavaScript 操作宏任务与微任务宏任务与微任务- javaScript是单线程语言(如果多线程dom会疯掉)
- 所以在同一时间只能执行一个任务,称为主线程,用来执行同步任务
- 同时还有两个任务列表用于存放异步任务,宏任务、微任务
- 执行顺序为:主线程=>微任务=>宏任务
- 定时器模块,到达时间点将其放入宏任务队列
- 如果主线程没有任务则执行,如果有则等待执行完成后再继续执行
- 如果有两个相同时间的定时器则上面的先执行下面的后执行
- 如果两个时间不同的定时器则时间短的先执行时间长的后执行
注意点:
- 定时器的⏲是在定时器模块中完成的,完成后就和普通异步任务一样了,
- 时间方面由于主线程实践过长的原因,有可能会延后
- promise的构造函数为同步任务
- 执行顺序永远为:同步=>微任务=>宏任务
- 在嵌套代码中可能出现宏任务中有同步、宏任务、微任务,这时将他们放到下一次执行中的队列/主线程等待执行
setTimeout(() => { console.log("定时器"); setTimeout(() => { console.log("timeout timeout"); }, 0); new Promise(resolve => { console.log("settimeout Promise"); resolve(); }).then(() => { console.log("settimeout then"); }); }, 0); new Promise(resolve => { console.log("Promise"); resolve(); }).then(() => { console.log("then"); }); console.log("ssss");
执行顺序:Promise=>ssss=>then=>定时器=>settimeout Promise=>settimeout then=>timeout timeout
DOM渲染任务浏览器渲染:CSS+DOM执行遇到js优先执行js
可以把js尽量放在下面:避免白屏
任务不会同时执行,会一个一个的被调度,他们共享内存
Promise微任务处理复杂业务使用promise可以将任务变成异步任务使其不影响同步任务的执行
到此这篇关于JavaScript 操作宏任务与微任务的文章就介绍到这了,更多相关JavaScript宏任务与微任务内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- qt和js相互调用(QT与javascript交互数据的实现)
- javascript 开发网站(帮你提高开发效率的JavaScript20个技巧)
- javascript中error错误类型
- JavaScript中call、apply、bind实现原理详解(JavaScript中call、apply、bind实现原理详解)
- javascript怎么编写游戏(javaScript实现网页版的弹球游戏)
- javascript类型转换
- javascript中需要注意的几个细节
- web中如何预防xss攻击(详解前端安全之JavaScript防http劫持与XSS)
- jquery留言板代码(JavaScript实现留言板添加删除留言)
- javascript的执行原理(一文读懂JavaScript 中的延迟加载属性模式)
- javascript如何获取后台数据(JavaScript实现异步获取表单数据)
- javascript函数工具有哪些(如何让你的JavaScript函数更加优雅详解)
- jupyternotebook搭建和使用(Jupyter Notebook运行JavaScript的方法)
- js防抖用法(JavaScript的防抖和节流案例)
- js打印斐波那契数列(JavaScript输出斐波那契数列的实现方法)
- javascript 自带格式化时间(JavaScript内置日期、时间格式化时间实例代码)
- 是不是快乐全被你拿走了(而是你得到的)
- 世界上只有妈妈好(世界上只有妈妈好的歌词)
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
- 直播带货能赚到很多钱吗(直播带货能赚到很多钱吗现在)
- 做网红真的很能赚钱吗(做网红真的很能赚钱吗)
- 10句英语常用(英语常用900句)
热门推荐
- pythonsocket建立多用户通讯(Python socket实现多对多全双工通信的方法)
- css垂直左右居中的方式(css常用元素水平垂直居中方案)
- python图片识别文字代码(python批量识别图片指定区域文字内容)
- view组件讲解(浅谈移动端中的视口viewport的具体使用)
- mysql 安装阿里云(详解如何在阿里云服务器安装Mysql数据库)
- 怎么用腾讯云主机搭建网站(用云主机怎么搭建网站?云主机建网站完整流程)
- css3各个动画效果(使用css3制作齿轮loading动画效果)
- 网络虚拟机系统安装教程(NPOINT免费虚拟主机管理系统windows2003的安装方法)
- css的列表符号怎么设置(reset.css引入以及1px边框问题的解决方法)
- sql怎么查询字段合并(SQL函数将某个字段合并在一起的操作)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9