SharedStorageWorklet
SharedStorageWorklet
是 Shared Storage API 的一个接口,它代表当前来源的共享存储 worklet。
SharedStorageWorklet
没有自己的属性或方法。相反,它继承了 addModule()
方法,该方法来自 Worklet
接口。此方法用于添加模块。
与普通 Worklet
不同
- 如果调用站点未在 隐私沙箱注册流程 中包含 Shared Storage API,则对
sharedStorageWorklet.addModule()
的调用将被拒绝。 - 出于隐私原因,
SharedStorageWorklet
只允许添加单个模块。即使注册成功,对同一个共享存储 worklet 的addModule()
的重复调用也将被拒绝。
可以通过 WindowSharedStorage.worklet
访问 SharedStorageWorklet
。
示例
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();
请参阅 Shared Storage API 着陆页,了解此示例的演练以及其他示例的链接。
规范
规范 |
---|
Shared Storage API # sharedstorageworklet |
浏览器兼容性
BCD 表只在浏览器中加载