SharedStorage 不是 HTML5 标准 API,而是 Chrome 实验性隐私沙盒特性,仅限同源 worklet 内执行聚合计算,不支持读取、个性化渲染或跨站点使用。

目前 HTML5 标准中没有 SharedStorage API,也不支持跨站点的客户端存储与内容分发。
你提到的 SharedStorage 是 Chromium 浏览器(如 Chrome 120+)在Privacy Sandbox 框架下实验性推出的 API,属于广告与隐私技术演进范畴,并非 HTML5 规范的一部分。它仅在启用 Privacy Sandbox 的 Chrome Canary/Dev 版本中可用,且默认禁用、需手动开启实验标志(chrome://flags/#enable-privacy-sandbox-ads-apis),其他主流浏览器(Firefox、Safari、Edge)尚未实现或明确拒绝支持。
为什么不能用 SharedStorage 做个性化内容分发?
SharedStorage 的设计目标非常明确:仅用于第一方上下文内、受严格限制的跨源“汇总”计算(如频次控制、聚合归因),不提供读取能力、不暴露原始数据、不支持直接渲染或个性化展示。关键限制包括:
- 只能由同源页面调用,跨站点(cross-site)脚本无法直接写入或读取;
- 所有操作必须在
worklet环境中执行,无法在主 JavaScript 线程访问结果; - 输出仅限于不可逆的哈希值或聚合统计(如“某广告被点击过 3 次”),不能还原用户偏好或内容 ID;
- 完全禁止存储敏感字段(如用户 ID、邮箱、行为路径);
- 生命周期极短(通常 7 天),且受浏览器自动清理策略影响。
当前可行的跨页面个性化方案(同源前提下)
若你的需求本质是同一域名下多个页面共享用户偏好或表单状态,应使用标准 Web Storage:
立即学习“前端免费学习笔记(深入)”;
- localStorage:适合长期保存(如主题色、语言选择),关闭浏览器也不丢失;
- sessionStorage:适合单会话临时数据(如多步表单暂存),标签页关闭即清除;
- 两者均要求数据为字符串,对象需用
JSON.stringify()/JSON.parse()转换; - 务必检查兼容性:
if (typeof localStorage !== 'undefined')再使用。
真正需要跨站点协同时的替代思路
跨不同域名(如 a.example.com 与 b.example.com)共享个性化数据,在现代隐私政策下必须依赖服务端协调,前端无法绕过同源策略:
- 通过后端统一用户身份(如 OAuth 登录态 + 用户中心 ID),各站点向同一 API 查询个性化配置;
- 利用第一方 Cookie 或 HTTP-only Token 维护认证状态,避免前端暴露凭证;
- 如确需轻量前端协同,可考虑 URL 参数传递(如
?theme=dark&lang=zh),但仅限非敏感、低风险信息。
不复杂但容易忽略:所谓“HTML5 SharedStorage”是个常见误传。实际开发中,请以 localStorage 和 sessionStorage 为基准,服务端为枢纽,远离实验性、非标准、浏览器专属的 API。



















