第 20 章 JavaScript API
20.1 Atomics与SharedArrayBuffer
20.1.1 SharedArrayBuffer
20.1.2 原子操作基础
20.2 跨上下文消息
20.3 Encoding API
20.3.1 文本编码
20.3.2 文本解码
20.4 File API 与 Blob API
20.4.1 File类型
20.4.2 FileReader 类型
20.4.3 FileReaderSync 类型
20.4.4 Blob与部分读取
20.4.5 对象URL与Blob
20.4.6 读取施放
20.5 媒体元素
20.5.1 属性
20.5.2 事件
20.5.3 自定义媒体播放器
20.5.4 检测编解码器
20.5.5 音频类型
20.6 原生拖放
20.6.1 拖放事件
20.6.2自定义放置目标
20.6.3 dataTransfer 对象
20.6.4 dropEffeet 与 effect Allowed
20.6.5 可拖动能力
20.6.6 其他成员
20.7 Notifications API
20.7.1 通知权限
20.7.2 显示和隐藏通知
20.7.3 通知生命周期回调
20.8 Page Visibility API
20.9 Streams API
20.9.1 理解流
20.9.2 可读流
20.9.3 可写流
20.9.4 转换流
20.9.5通过管道连接流
20.10 计时 API
20.10.1 High Resolution Time API
20.10.2 Performance Timeline API
20.11 Web 组件
20.11.1 HTML 模板
20.11.2 影子 DOM
20.11.3 自定义元素
20.12 Web Cryptography API
20.12.1 生成随机数
20.12.2 使用 SubtleCrypto 对象
第21章错误处理与调试
21.1 浏览器错误报告
21.1.1 桌面控制台
21.1.2 移动控制台
21.2 错误处理
21.2.1 try/catch 语句
21.2.2 抛出错误
21.2.3 error 事件
21.2.4 错误处理策略
21.2.5 识别错误
21.2.6 区分重大与非重大错误
21.2.7 把错误记录到服务器中
21.3 调试技术
21.3.1 把消息记录到控制台
21.3.2 理解控制台运行时
21.3.3 使用 JavaScript 调试器
21.3.4 在页面中打印消息
21.3.5 补充控制台方法
21.3.6 抛出错误
21.4 旧版IE的常见错误
21.4.1 无效字符
21.4.2 未找到成员
21.4.3 未知运行时错误
21.4.4语法错误
21.4.5系统找不到指定资源
第22章 处理XML
22.1浏览器对XML DOM的支持
22.1.1 DOM Level 2 Core
22.1.2 DOMParser 类型
22.1.3 XMLSerializer 类型
22.2浏览器对XPath的支持
22.2.1 DOM Level 3 XPath
22.2.2单个节点结果
22.2.3 简单类型结果
22.2.4默认类型结果
22.2.5 命名空间支持
22.3浏览器对XSLT的支持
22.3.1 XSLTProcessor 类型
22.3.2使用参数
22.3.3 重置处理器
第 23 章 JSON
23.1 语法
23.1.1 简单值
23.1.2 对象
23.1.3 数组
23.2 解析与序列化
23.2.1 JSON 对象
23.2.2 序列化选项
23.2.3 解析选项
第24章 网络请求与远程资源
24.1 XMLHttpRequest 对象
24.1.1 使用 XHR
24.1.2 HTTP 头部
24.1.3 GET 请求
24.1.4 POST 请求
24.1.5 XMLHttpRequest Level 2
24.2 进度事件
24.2.1 load 事件
24.2.2 progress 事件
24.3 跨源资源共享
24.3.1 预检请求
24.3.2 凭据请求
24.4 替代性跨源技术
24.4.1 图片探测
24.4.2 JSONP
24.5 Fetch API
24.5.1 基本用法
24.5.2常见Fetch请求模式
24.5.3 Headers 对象
24.5.4 Request 对象
24.5.5 Response 对象
24.5.6 Request、Response 及Body 混入
24.6 Beacon API
24.7 Web Socket
24.7.1 API
24.7.2发送和接收数据
24.7.3 其他事件
24.8 安全
第25章 客户端存储
25.1 cookie
25.1.1 限制
25.1.2 cookie 的构成
25.1.3 JavaScript 中的 cookie
25.1.4 子 cookie
25.1.5使用cookie的注意事项
25.2 Web Storage
25.2.1 Storage 类型
25.2.2 sessionstorage 对象
25.2.3 localstorage 对象
25.2.4存储事件
25.2.5 限制
25.3 IndexedDB
25.3.1 数据库
25.3.2 对象存储
25.3.3 事务
25.3.4 插入对象
25.3.5通过游标查询
25.3.6键范围
25.3.7设置游标方向
25.3.8 索引
25.3.9 并发问题
25.3.10 限制
第26章模块
26.1理解模块模式
26.1.1 模块标识符
26.1.2模块依赖
26.1.3 模块加载
26.1.4 人口
26.1.5 异步依赖
26.1.6 动态依赖
26.1.7 静态分析
26.1.8 循环依赖
26.2凑合的模块系统
26.3使用ES6之前的模块加载器
26.3.1 Common JS
26.3.2 异步模块定义
26.3.3 通用模块定义
26.3.4模块加载器终将没落
26.4 使用ES6模块
26.4.1 模块标签及定义
26.4.2模块加载
26.4.3 模块行为
26.4.4模块导出
26.4.5 模块导入
26.4.6模块转移导出
26.4.7 工作者模块
26.4.8 向后兼容
26.5 小结
第27章 工作者线程
27.1 工作者线程简介
27.1.1 工作者线程与线程
27.1.2工作者线程的类型
27.1.3 WorkerGlobalScope
27.2 专用工作者线程
27.2.1 专用工作者线程的基本概念
27.2.2 专用工作者线程与隐式 MessagePorts
27.2.3 专用工作者线程的生命周期
27.2.4 配置 Worker 选项
27.2.5 在JavaScript行内创建工作者线程
27.2.6 在工作者线程中动态执行脚本
27.2.7 委托任务到子工作者线程
27.2.8 处理工作者线程错误
27.2.9 与专用工作者线程通信
27.2.10 工作者线程数据传输
27.2.11 线程池
27.3共享工作者线程
27.3.1 共享工作者线程简介
27.3.2 理解共享工作者线程的生命周期
27.3.3 连接到共享工作者线程
27.4服务工作者线程
27.4.1 服务工作者线程基础
27.4.2服务工作者线程缓存
27.4.3 服务工作者线程客户端
27.4.4服务工作者线程与一致性
27.4.5理解服务工作者线程的生命周期
27.4.6控制反转与服务工作者线程持久化
27.4.7 通过 updateViaCache 管理服务文件缓存
27.4.8 强制性服务工作者线程操作
27.4.9服务工作者线程消息
27.4.10 拦截 fetch 事件
27.4.11 推送通知