3. Web API

脚本

扩展模块

本模块涵盖了我们之前没有详细介绍过的三种最常见 Web API 类别的一些常见方面,为想要深入了解浏览器 API 使用的读者提供了有用的基础。

一般说明:

  • 本模块不尝试详尽地涵盖 Web 浏览器中可用的所有 API。
  • 相反,它为您提供足够的信息来理解 Web API 的一般概念,并能够通过您自己的研究学习新的 API。

一般资源

3.1 视频和音频 API

学习成果

  • 一般概念
    • 了解不同类型的视频和音频格式。
    • 了解编解码器。
    • 了解与音频和视频相关的关键功能——播放、暂停、停止、快进快退、时长和当前时间。

    注意:

    • 这套合格标准并不期望学生能够详细了解 Web 平台的所有与视频和音频相关的 API。此类别中有很多功能,并且预先学习所有功能既不实用也不特别有用。某些功能适用于利基用例,鼓励学生作为持续学习的一部分或在需要时了解更多。
    • 目前,您需要了解 Web 上视频和音频背后的概念、基本的核心 API 功能以及一些更高级 API 的用途。
  • 使用 HTMLMediaElement API 构建基本的自定义媒体播放器
    • 了解为什么要这样做——您的目标受众可能有一些浏览器默认设置无法满足的特定需求。
    • 一个很好的例子是,一些浏览器默认控件的键盘可访问性不是很好。
    • 另一个例子是,您可能只是希望在不同浏览器中获得一致的 UI 设计。
  • 使用媒体流/getUserMedia() 从本地设备捕获视频和音频。
  • 处理与媒体传送相关的常见错误
    • 使用 <source> 元素处理多种格式。
    • 使用正确的 MIME 类型。
    • 如果媒体不受支持,则显示备用内容。
  • 了解其他视频和音频 API 的用途,包括 Web Audio API、媒体流录制 API 和媒体源扩展 API。

资源

3.2 图形/动画 API

学习成果

  • 使用计时器和 requestAnimationFrame() 设置动画循环
    • 基本语法和用法。
    • 了解为什么 requestAnimationFrame() 比之前的版本有所改进。
    • 动画循环的常见用例,例如装饰性动画和游戏。
  • Web 动画 API
    • 基本语法和用法。
    • 了解 Web 动画 API 如何与 CSS 动画属性相关联,以及何时应该使用每个属性。
    • 常见用例。
  • 画布
    • 从概念上了解 <canvas> 元素和相关 API 能够实现什么。
    • 2D Canvas API 的基本语法和用法。
    • 循环 <canvas> 更新以创建简单的动画或游戏。

资源

3.3 客户端存储

注意:

在这套合格标准中,需要理解的主要内容是一般概念、使用 Web 存储执行简单的客户端存储任务以及 Cookie 如何以积极和消极的方式使用。

学习成果

  • 了解客户端存储的概念
    • 了解常见的客户端数据存储机制——Web 存储 API、Cookie、缓存 API 和 IndexedDB API。
    • 关键用例——在重新加载之间维护状态、持久化登录和用户个性化数据以及本地/脱机工作。
    • 了解与客户端存储相关的负面模式——例如使用 Cookie 进行跟踪/指纹识别。
  • 使用 Cookie 存储任意数据,通常由 HTTP 标头控制。
  • 使用 Web 存储进行简单的键值对存储,由 JavaScript 控制。
  • 使用 IndexedDB
    • 完整的客户端事务数据库系统。
    • 复杂且很少直接使用。您更有可能使用像 dexie.js 这样的库。
  • 使用缓存/服务工作线程
    • 了解它们在渐进式 Web 应用 (PWA) 中使用的基本思想以及使站点脱机工作的基本用例。

注意:

IndexedDB 和缓存 API(通常与服务工作线程一起使用)很复杂,并且构成了巨大的主题。在此阶段详尽地了解它们不是必需的,但我们建议您了解它们的工作原理。

资源

上一页:2. 自定义 JS 对象下一页:4. 性能