domparser.parsefromstring() 解析大文件会崩,因需将整个 html 字符串载入内存(25mb 文件膨胀至约1.3gb),触发v8 oom或主线程冻结,且不支持流式输入、无法中断解析。

直接用 innerHTML 或 DOMParser.parseFromString() 解析几十 MB 的 HTML 文件,基本等于主动卡死浏览器——这不是性能问题,是内存和主线程调度失控。
为什么 DOMParser.parseFromString() 在大文件上会崩
DOMParser.parseFromString() 要求输入字符串,意味着你必须先用 FileReader.readAsText() 或 response.text() 把整个 HTML 加载进内存。对一个 25MB 的 UTF-8 文件,JS 字符串在内存中会膨胀到约 1.3GB(UTF-8 单字节 → JS 字符双字节 + 内存对齐开销),V8 直接触发 GC 压力或 OOM。Chrome 会无响应超 6 秒,且无法中断解析过程。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
常见错误现象:DOMParser.parseFromString(htmlStr, 'text/html') 在 15MB+ HTML 上卡住、DevTools Memory 面板显示堆内存陡升、控制台无报错但页面冻结。
- 它不支持流式输入,必须等完整字符串就绪才开始解析
- 生成的 DOM 树全部驻留主线程,哪怕你只想要
<a href></a>列表 - 无法指定编码 fallback;若 HTML 声明
<meta charset="gbk">浣嗕綘浼犲叆 utf-8 瀛楃
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










