## 需求和用例
本文档描述了一个满足特定需求的 API:通过 JS API 以及客户端提示来传达用户在数据
节省方面的偏好。
**用例示例:**
* 主要用途是流式传输媒体的 Web 应用,如果用户有意降低其数据成本,则可以提供高度压缩的媒体内容。
* 向用户呈现背景视频的 Web 应用可以根据用户的偏好选择改用背景图像。
## NavigatorNetworkInformation 接口
NetworkInformation 接口通过混入
NetworkInformationSaveData 来公开对 saveData 的访问。
interface mixin NetworkInformationSaveData {
[SameObject] readonly attribute boolean saveData;
};
NetworkInformation includes NetworkInformationSaveData;
### saveData 属性
saveData 属性在获取时,如果用户已从用户代理请求降低数据使用量的模式,则返回 `true`,
否则返回 `false`。
如果用户代理提供此类偏好,用户可以因数据传输 成本高、连接速度慢或其他原因启用该偏好。
####Save-Data 请求头字段
SaveData 请求头是一个客户端提示 [[CLIENT-HINTS]]。该头的值是一个 `sh-list`
[[STRUCTURED-HEADERS]],其中包含表示用户代理偏好降低数据使用量的 `token`。
Save-Data = sh-list
本规范定义了 "`on`" `token` 值,它用作一个信号,表示用户明确选择进入
降低数据使用量的模式(即当 saveData 的值为 `true` 时),并且在传达给源时允许它们
交付遵循该偏好的替代内容——例如更小的图像和视频资源、替代标记,等等。
如果列表中存在多个相互冲突的 token,则最新的 token 优先。