文章
64
标签
0
分类
13
主页
YianNotes
JavaScript 内存泄漏
返回首页
搜索
主页
JavaScript 内存泄漏
发表于
2026-01-04
|
更新于
2026-02-03
|
JavaScript
|
总字数:
0
|
阅读时长:
1分钟
文章作者:
Yian
文章链接:
https://yian.cyou/JavaScript%20%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F/
版权声明:
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议。转载请注明来源
YianNotes
!
赞助
微信
支付宝
上一篇
web worker
title: Web Worker 通信深度解析(底层原理版)date: 2026-01-30category: “JavaScript / 浏览器内核” Web Worker 核心笔记1. Web Worker 角色定位 多线程模型:JavaScript 在后台开启独立线程,不占用主线程(UI 线程)。 物理隔离:拥有独立的 Event Loop、独立内存、独立的全局对象(self/WorkerGlobalScope)。 局限性:无法访问 DOM、localStorage 或 window 对象。 2. postMessage 通信底层流程(核心)跨线程通信并非“瞬间移动”,而是遵循 “打包 -> 投递 -> 排队 -> 执行” 的逻辑: 打包(发送方):执行 postMessage(data),浏览器利用“结构化克隆算法”对数据进行深拷贝。 入队(接收方):浏览器内核将“消息数据”与“处理逻辑”封装成一个 Message Task(宏任务),直接塞进接收方线程的 宏任务队列。 触发执行(接收方):当接收方的事件循环(Even...
下一篇
渲染主线程
解析流程1. 解析 DOM(初始宏任务) 这是页面加载的第一个宏任务 2. 遇到同步脚本1234567解析DOM → 遇到同步<script> → 暂停解析 → 执行同步代码 ↓同步代码产生微任务/宏任务 → 加入相应队列 ↓同步代码执行完成 → 立即清空微任务队列 ↓恢复DOM解析 3. 遇到 defer/module 脚本123456789解析DOM → 遇到defer/module<script> → 继续解析,异步下载 ↓DOM解析完成 → 等待所有defer/module下载完成 ↓按文档顺序执行defer/module脚本 ↓每个脚本执行后清空微任务队列 ↓所有脚本执行完成 → 触发DOMContentLoaded 4. 遇到 async 脚本1234567解析DOM → 遇到async<script> → 继续解析,异步下载 ↓脚本下载完成(无论DOM是否解析完) ↓立即作为新宏任务执行 ↓执行后清空微任务队列 5. DOM 解析完成后123456789...
Yian
光荣在于平淡,艰巨在于漫长
文章
64
关注我
待办清单
0
总任务
0
已完成
0
待完成
全部
待完成
已完成
最新文章
穷尽性类型保护 (Never)
2026-01-11
web worker
2026-01-08
JavaScript 内存泄漏
2026-01-04
Html MIME 字符串
2025-12-24
渲染过程以及性能代价
2025-12-24
搜索
数据加载中