SharedStorageWorklet

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Das SharedStorageWorklet-Interface der Shared Storage API repräsentiert das Shared Storage Worklet für die aktuelle Herkunft.

SharedStorageWorklet hat keine eigenen Eigenschaften oder Methoden. Stattdessen erbt es die addModule()-Methode aus dem Worklet-Interface. Diese Methode wird verwendet, um ein Modul hinzuzufügen.

Im Gegensatz zu einem normalen Worklet:

  • Wenn die aufrufende Seite die Shared Storage API nicht in einen Privacy Sandbox-Einschreibungsprozess einbezogen hat, werden Anrufe an sharedStorageWorklet.addModule() abgelehnt.
  • SharedStorageWorklet erlaubt aus Datenschutzgründen nur, ein einziges Modul hinzuzufügen. Selbst bei erfolgreicher Einschreibung werden wiederholte Aufrufe von addModule() auf demselben Shared Storage Worklet abgelehnt.

Auf SharedStorageWorklet wird über WindowSharedStorage.worklet zugegriffen.

Worklet SharedStorageWorklet

Beispiele

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();

Siehe die Shared Storage API-Übersichtsseite für eine Schritt-für-Schritt-Anleitung dieses Beispiels und Links zu anderen Beispielen.

Spezifikationen

Specification
Shared Storage API
# sharedstorageworklet

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
SharedStorageWorklet
Experimental
run
Experimental
selectURL
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.

Siehe auch