document.readyState 的实际取值只有三个:”loading”、”interactive”、”complete”;其余如”uninitialized”和”loaded”已弃用,它是一个只读字符串,非布尔值或进度百分比,精确反映文档解析阶段。

document.readyState 的实际取值只有三个
现代浏览器中能稳定观测到的 document.readyState 值只有 "loading"、"interactive"、"complete",其余如 "uninitialized"(仅旧 IE)和 "loaded" 已被弃用,不应在新项目中依赖。
它不是布尔值,也不是加载进度百分比,而是一个只读字符串,反映文档当前所处的解析阶段:
-
"loading":HTML 正在解析,document.body极大概率是null,此时调用querySelector或访问body会报错 -
"interactive":DOM 树已构建完成,JS 可执行、用户可交互;但图片、CSS、iframe 等子资源仍在加载 -
"complete":所有资源(含图片、样式表、脚本、iframe)均已加载完毕,等价于window.load触发前一刻
什么时候该用 readystatechange 而不是 DOMContentLoaded
当你需要在 "interactive" 阶段就介入逻辑(比如快速挂载轻量 UI、注入调试工具、拦截早期用户操作),或需兼容 IE8–10 时,readystatechange 比事件监听更底层、更可控。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
但要注意几个关键差异:
-
DOMContentLoaded是单次事件,且保证在"interactive"后立即触发;而readystatechange可能多次触发(比如从"loading"→"interactive"→"complete") - 某些场景下(如内联脚本紧贴
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










