WindowSharedStorage

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

WindowSharedStorage共享存储 API 的一个接口,它代表标准浏览上下文中特定来源的共享存储。

可以通过 Window.sharedStorage 访问 WindowSharedStorage

实例属性

worklet 实验性

包含表示当前来源的共享存储工作线程的 SharedStorageWorklet 实例。SharedStorageWorklet 包括 addModule() 方法,该方法用于向共享存储工作线程添加模块。

实例方法

WindowSharedStorage 继承自其父接口 SharedStorage 的属性。

run() 实验性

执行已在添加到当前来源的 SharedStorageWorklet 的模块中注册的 运行输出网关 操作。

selectURL() 实验性

执行已在添加到当前来源的 SharedStorageWorklet 的模块中注册的 URL 选择输出网关 操作。

示例

js
// Randomly assigns a user to a group 0 or 1
function getExperimentGroup() {
  return Math.round(Math.random());
}

async function injectContent() {
  // Add the module to the shared storage worklet
  await window.sharedStorage.worklet.addModule("ab-testing-worklet.js");

  // Assign user to a random group (0 or 1) and store it in shared storage
  window.sharedStorage.set("ab-testing-group", getExperimentGroup(), {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation
  const fencedFrameConfig = await window.sharedStorage.selectURL(
    "ab-testing",
    [
      { url: `https://your-server.example/content/default-content.html` },
      { url: `https://your-server.example/content/experiment-content-a.html` },
    ],
    {
      resolveToConfig: true,
    },
  );

  // Render the chosen URL into a fenced frame
  document.getElementById("content-slot").config = fencedFrameConfig;
}

injectContent();

请参阅 共享存储 API 着陆页,以获取此示例的演练以及其他示例的链接。

规范

规范
共享存储 API
# windowsharedstorage

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅