网站开发入门书籍2018如何建个人网站流程

张小明 2026/1/9 3:53:34
网站开发入门书籍2018,如何建个人网站流程,做手机网站的公司,凌云网络科技有限公司事件循环#xff08;Event Loop#xff09;是 JavaScript 运行时处理异步操作的核心机制。 浏览器和 Node.js 都实现了事件循环#xff0c;但两者的实现方式和执行顺序存在差异。 浏览器事件循环 浏览器事件循环基于 Message Pump 实现#xff0c;有宏任务和微任务两个概…事件循环Event Loop是 JavaScript 运行时处理异步操作的核心机制。浏览器和 Node.js 都实现了事件循环但两者的实现方式和执行顺序存在差异。浏览器事件循环浏览器事件循环基于 Message Pump 实现有宏任务和微任务两个概念。任务类型宏任务setTimeoutsetIntervalDOM 事件微任务PromiseMutationObserverasync/await在执行时同步任务优先执行微任务在单个循环周期里遇到就会执行宏任务每个周期只执行一次。这么设计主要是为了避免优先级高的任务被长时间阻塞。注意RAFrequestAnimationFrame不是宏任务不是 Event Loop 的任意一环是 Render Loop 驱动。执行顺序浏览器事件循环的基本流程是执行一个宏任务 → 清空所有微任务 → 渲染可选→ 重复执行一个宏任务从宏任务队列取出一个宏任务执行首次执行时全局 script 脚本就是一个宏任务宏任务中包含同步代码同步代码会立即执行执行过程中遇到新的宏任务如 setTimeout放入宏任务队列执行过程中遇到微任务如 Promise.then放入微任务队列清空微任务队列当前宏任务执行完毕后依次执行所有微任务执行微任务过程中产生的新的微任务也会在当前周期执行直到微任务队列完全清空浏览器渲染可选根据需求进行渲染执行布局重排即元素宽高、位置调整执行绘制重绘即对元素进行上色处理文字颜色、背景颜色绘制执行合成根据元素的层叠顺序执行合成操作进入下个事件周期重复步骤1取下一个宏任务执行浏览器渲染条件无渲染条件不会渲染无 DOM 变化不会执行渲染同个事件循环多次修改DOM合并成一次渲染约 60 FPS(16.6ms)后台标签暂停渲染执行不会同步屏幕直到切回前台密集型 JS 执行阻塞渲染步骤导致出现卡顿超过 16.6ms执行优先级宏任务 微任务 渲染可选 下个周期执行示例console.log(1. 同步代码);setTimeout((){console.log(2. 宏任务 - setTimeout);},0);Promise.resolve().then((){console.log(3. 微任务 - Promise);});console.log(4. 同步代码);// 输出顺序1 → 4 → 3 → 2// 同步代码先执行 → 微任务执行 → 宏任务执行注意事项过多微任务会阻塞渲染操作获取浏览器元素宽高位置信息等会引起浏览器立刻执行渲染重排 reflow全局 script 脚本本质就是一个宏任务站在全局角度考虑一个宏任务触发后再执行微任务站在代码角度考虑微任务队列清空后再执行宏任务的内容。Node.js 事件循环Node.js 事件循环基于 libuv 实现。timers阶段这个阶段执行timersetTimeout、setInterval的回调I/O事件回调阶段(I/O callbacks/pending callback)执行延迟到下一个循环迭代的 I/O 回调即上一轮循环中未被执行的一些I/O回调闲置阶段(idle, prepare)仅系统内部使用轮询阶段(poll)检索新的 I/O 事件执行与 I/O 相关的回调几乎所有情况下除了关闭的回调函数那些由计时器和 setImmediate() 调度的之外其余情况 node 将在适当的时候在此阻塞检查阶段(check)setImmediate() 回调函数在这里执行关闭事件回调阶段(close callback)一些关闭的回调函数如socket.on(‘close’, …)任务类型在 Node.js 中同样存在宏任务和微任务与浏览器中的事件循环相似。微任务对应有next tick queueprocess.nextTickother queuePromise 的 then 回调、queueMicrotask宏任务对应有timer queuesetTimeout、setIntervalI/O Callbacks Queue延迟的 IO 事件回调poll queueIO事件回调check queuesetImmediateclose queueclose事件执行顺序Node.js 事件循环的执行顺序为执行一个宏任务/阶段 → 清空微任务队列nextTick 优先→ 进入下一个宏任务/阶段全局代码属于宏任务的一种只有首次执行清空微任务队列next tick microtask queueprocess.nextTick 的微任务优先级最高other microtask queuePromise 的 then 回调、queueMicrotasktimer queue执行 setTimeout、setInterval 的回调执行完毕后清空微任务队列I/O callbacks queuepending queue执行延迟的 I/O 回调执行完毕后清空微任务队列poll queue检索新的 I/O 事件执行 I/O 相关回调执行完毕后清空微任务队列check queue执行 setImmediate 的回调执行完毕后清空微任务队列close queue执行关闭事件的回调执行完毕后清空微任务队列重复步骤3进入下一个事件循环思考1. 为什么微任务要在宏任务之后执行微任务的设计目的是为了在宏任务执行完毕后立即执行一些高优先级的任务避免被其他宏任务阻塞保证及时响应宏微任务的设计本身就是为任务优先级考虑。2. 过多微任务会导致什么问题如果微任务队列中有大量任务会阻塞后续的宏任务执行和浏览器渲染导致页面卡顿。总结浏览器事件循环基于 messagepump 实现执行顺序为宏任务 → 微任务 → 渲染可选→ 下个周期。同步代码在宏任务内部执行微任务在单个循环周期内会全部执行完毕宏任务每个周期只执行一个。Node.js 事件循环基于 libuv 实现分为多个阶段timers、I/O callbacks、poll、check、close callbacks每个阶段执行完毕后会执行微任务队列nextTick 优先级最高然后进入下一个阶段。关键区别浏览器的事件循环更简单直接而 Node.js 的事件循环有明确的阶段划分更适合处理 I/O 密集型任务。参考内容Event Loop - MDNThe Node.js Event Loop - Node.js 官方文档
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

中学生网站源码南山做网站的公司

5分钟精通DBeaver空间数据可视化:从零基础到高效应用 【免费下载链接】dbeaver DBeaver 是一个通用的数据库管理工具,支持跨平台使用。* 支持多种数据库类型,如 MySQL、PostgreSQL、MongoDB 等;提供 SQL 编辑、查询、调试等功能&a…

张小明 2026/1/7 14:21:24 网站建设

专业做网站官网枣庄机关建设网站

还在为WE Learn平台上的海量题目发愁吗?WE Learn智能助手正是你需要的终极学习伴侣。这款免费工具通过智能化技术,帮你轻松应对选择题、判断题等各种题型,同时提供视频时长自动统计功能,让你的学习效率翻倍提升。 【免费下载链接】…

张小明 2026/1/5 2:04:56 网站建设

上海网站建设自学福州有做网站引流的吗

Draper集合装饰器终极指南:快速构建优雅的Rails视图层 【免费下载链接】draper Decorators/View-Models for Rails Applications 项目地址: https://gitcode.com/gh_mirrors/dr/draper 在Rails应用开发中,Draper集合装饰器是构建优雅视图层的终极…

张小明 2026/1/5 2:04:54 网站建设

北京模板建站软件dede网站婚纱模板

第一章:错过再等一年!Dify工作流重试机制全貌揭秘在构建高可用的AI应用时,网络波动、模型超时或临时性服务异常难以避免。Dify 工作流引擎内置了智能重试机制,确保关键任务在短暂失败后仍能自动恢复执行,极大提升系统鲁…

张小明 2026/1/5 3:37:17 网站建设

网站建设询价单做普通网站选择什么服务器

当我坐在指挥中心,面前不再是二十块分割的监控屏幕,而是一幅会呼吸的城市全景图。三年前,如果有人告诉我,我能像玩模拟城市游戏一样管理真实的城市,我一定会觉得这是天方夜谭。今天,这一切正在成为我们日常…

张小明 2026/1/5 3:37:15 网站建设

羊绒制品有限公司网站建设论文广州关键词排名推广

直播间数据监控终极指南:如何快速获取弹幕、礼物与用户行为数据 【免费下载链接】live-room-watcher 📺 可抓取直播间 弹幕, 礼物, 点赞, 原始流地址等 项目地址: https://gitcode.com/gh_mirrors/li/live-room-watcher 想要实时掌握直播间的弹幕…

张小明 2026/1/5 3:37:13 网站建设