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宏任务与微任务内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- MVC中JavaScriptResult
- javascript如何转换int型(浅谈JavaScript中的parseInt的妙用)
- javascript学习参数(详解JavaScript堆栈与拷贝)
- JavaScript实现网页版贪吃蛇游戏(JavaScript实现网页版贪吃蛇游戏)
- js回调函数原理(关于JavaScript回调函数的深入理解)
- javascript如何建立一个静态变量(JavaScript中子函数访问外部变量的3种解决方法)
- javascript登录转注册界面(JavaScript实现登录窗体)
- 生成随机数javascript(JavaScript实现随机生成验证码及校验)
- pyqt5加载chrome浏览器(PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例)
- javascript写游戏脚本(原生JS实现飞机大战小游戏)
- javascript类型转换
- javascript dom事件模型(JavaScript WebAPI、DOM、事件和操作元素实例详解)
- JavaScript将具有父子关系的数据转化成树形结构,供tree控件使用
- jscanvas背景色(JavaScript canvas实现代码雨效果)
- javascript动作事件有哪些(JavaScript之事件循环案例讲解)
- js绘制平滑路径(如何利用Javascript生成平滑曲线详解)
- 三杨之一 南杨 杨溥 安贞履节,酿醴调羹,宰相之气(三杨之一南杨杨溥)
- 今天会下雨吗(今天会下雨吗小说)
- 追连续剧,品古今联4 明代三杨,联妙诗佳(追连续剧品古今联4)
- 三杨 共辅四朝帝王,构建明帝国内阁行政圈(三杨共辅四朝帝王)
- 红色文化进国企(红色文化进国企)
- 车友的选择| 轮毂该如何选(车友的选择轮毂该如何选)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9