当前位置: 首页 > wzjs >正文

学校资源网站 建设wordpress博客数据放在哪里的

学校资源网站 建设,wordpress博客数据放在哪里的,手机建站程序源码,如何开发app小程序在 JavaScript 中,宏任务(MacroTask) 和 微任务(MicroTask) 是事件循环中任务调度的核心分类。 一、概述:事件环工作执行流程 第一步:执行同步代码 从调用栈中执行当前所有同步任务&#xff0…

在 JavaScript 中,宏任务MacroTask) 和 微任务MicroTask) 是事件循环中任务调度的核心分类。

一、概述:事件环工作执行流程

第一步:执行同步代码
从调用栈中执行当前所有同步任务,直到调用栈清空。

第二步:清空微任务队列
依次执行微任务队列中的所有任务(包括执行过程中新产生的微任务),直到队列为空。

第三步:渲染更新(浏览器)
如果需要,浏览器会执行页面渲染(重绘、布局等)。

第四步:执行一个宏任务
从宏任务队列中取出队列头的第一个任务(如 setTimeout 回调),执行它。

第五步:重复循环
回到第一步,开启新的事件循环。

二、宏任务(MacroTask

宏任务代表需要较长时间执行的异步任务,每次事件循环中只执行一个宏任务(队列中的首个):

常见的宏任务:
setTimeout: 定时器回调函数(即使延迟为 0,也是宏任务)。
setInterval: 周期性定时器回调。
I/O 操作: 文件读写、网络请求(如 XMLHttpRequest、fetch 的回调)。
DOM 事件: 用户交互事件(如点击、滚动等)的回调。
requestAnimationFrame: 浏览器动画帧回调(通常归类为宏任务,但执行时机与渲染相关)。
script: 整体代码 初始执行的全局同步代码本身也是一个宏任务。
MessageChannel: 跨文档通信或 Web Worker 通信的回调。
Node.js 特有:
setImmediate: Node.js 中立即执行的宏任务(与 setTimeout(fn, 0) 类似,但有差异)。
I/O 回调 Node.js 中文件、网络等异步操作的回调

二、微任务(MicroTask

微任务具有更高优先级,会在当前宏任务执行后下一个宏任务执行前一次性清空队列

常见的微任务:
Promise.then/catch/finally : Promise 的异步回调(包括 async/await 的隐式转换)。
MutationObserver: 监听 DOM 变化的回调(浏览器环境)。
queueMicrotask: 显式将函数加入微任务队列的 API(如 queueMicrotask(() => { … }))。
Node.js 特有
process.nextTick Node.js 中优先级最高的微任务(甚至高于 Promise)

三、关键区别

请添加图片描述

四、执行顺序案例

1:基础顺序
console.log("Start"); // 同步代码(宏任务)// 宏任务
setTimeout(() => console.log("Timeout"));// 微任务
Promise.resolve().then(() => console.log("Promise"));console.log("End"); // 同步代码(宏任务)
// 输出:Start → End → Promise → Timeout
2:微任务嵌套
// 宏任务
setTimeout(() => console.log("Timeout"));// 微任务(嵌套微任务)
Promise.resolve().then(() => {console.log("Promise 1");Promise.resolve().then(() => console.log("Nested Promise"));}).then(() => console.log("Promise 2"));
// 输出:Promise 1 → Nested Promise → Promise 2 → Timeout

五、特殊注意事项

Node.js 与浏览器的差异
Node.js 中 process.nextTick优先级高于 Promise.then。
Node.js 的 setImmediate 和 setTimeout(fn, 0) 执行顺序可能不同

微任务可能阻塞渲染
如果微任务队列过长,浏览器会在执行完所有微任务后才进行渲染,导致页面卡顿

避免微任务无限递归

function infiniteMicrotask() {Promise.resolve().then(infiniteMicrotask);
}
infiniteMicrotask(); // 会导致页面卡死

六、总结

宏任务:用于处理需要延迟执行或与外部交互的任务(如定时器、I/O)。

微任务:用于处理需要立即执行的高优先级任务(如 Promise 回调)。

以上内容如有错误之处,欢迎批评指正

http://www.dtcms.com/wzjs/616584.html

相关文章:

  • 哪个网站可以免费做招牌html完整网页实例
  • 网站建设 软件开发的公司排名怎样搭建免费网站
  • 网站建设信用卡分期手续费wordpress简介
  • 一元钱购买网站空间青岛做网站找哪家
  • 下载广安同城app常德外贸网站优化推广
  • 婚庆公司网站php源码网络建站工作室
  • 做文字头像的网站网址缩短链接在线工具
  • 广西优化网站燕窝网站怎么做的
  • 嘉兴做网站赚钱么渭南网站建设费用明细
  • 网站流量图怎么做福田瑞沃轻卡
  • 西安企业网站建设代理机构中国服务外包网网址
  • 苏州 做网站wordpress数据接口
  • 自己什么建设网站水果网站源码
  • 百度图片点击变网站是怎么做的最专业的网站制作公司
  • wordpress站点地图企业网站模板 优帮云
  • 好看的企业网站源码网站seo优化建议
  • 企业网站做优化网站建设基础教学设计
  • 个人免费建网站方法手机访问asp网站
  • 智能建站的优势和不足机械设备东莞网站建设
  • 海东市住房和城乡建设局网站青海工程建设云网站
  • pageadmin自助建站系统德阳响应式网站建设
  • 成都网站建设外包公司排名wordpress 缺少临时文件夹
  • 铺面怎样做放上网站wordpress 被写入文件
  • 茂名快速建站模板品牌营销推广
  • 南京手机app开发公司如何网站关键词优化
  • 建什么网站收益比较号秦皇岛网站开发公司
  • 最容易做的网站类型网站构建技术
  • 上海网站se0优化公司wordpress 4.7 新功能
  • 建设通是个什么网站秦皇岛解封最新消息今天
  • 学习网站开发教程建设网站建设多少钱