第八章|浏览器平台与页面状态
语言自身不知道按钮、网络和页面历史是什么。本章把已经学过的对象、事件循环、Promise 和模块应用到浏览器提供的能力上。每节是独立的小实验,不安排综合项目。
本章的阅读顺序
DOM、事件与表单:对象树 → 传播 → 输入与默认行为。
Fetch、取消与竞态:响应 → 解析 → 最新结果更新权。
存储、URL 与历史:状态寿命 → 存储边界 → 导航恢复。
生命周期与观察器:页面状态 → 变化通知 → 合并处理。
Worker 与消息:独立执行 → 数据传输 → 来源校验。
Web Components:元素生命周期 → 结构封装 → 公开事件。
文件与实时通信:字节与预览 → 上传 → 持续消息。
这些概念怎样联系
DOM 是页面结构,事件是用户输入的入口;网络和存储提供状态,生命周期决定何时开始与停止;Worker 和组件则建立执行与结构边界。这些机制最终都汇入同一个问题:当前页面应该展示哪份状态,以及谁负责更新它。先掌握前两节,再读状态存储;后面的观察器、Worker 和组件可以在完成核心阅读后深入,但仍属于本书正式内容。
本章的小实验分别给出可以观察的机制证据:事件经过哪五个监听位置;旧请求最后完成为何仍不能发布;第一条数据库请求成功后怎样整体回滚;两条修改记录为何看到同一个当前值;buffer转回来为何旧视图仍失效;同一个元素如何升级后多次连接。这些问题比记住API名称更接近实际排查。
阅读后的自查
先独立完成便签的计数与清空,再用人工响应器证明页面离开后不会被旧请求更新。继续验证同一自定义元素三次关闭只发出三条通知,以及 Service Worker 等待版本为何尚未接管请求。每个实验单独完成,不需要拼成项目。