SharedStorageSelectURLOperation

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, bevor Sie diese produktiv verwenden.

Die SharedStorageSelectURLOperation-Schnittstelle der Shared Storage API repräsentiert eine URL Auswahl-Ausgabe-Gate-Operation.

Instanzmethoden

run() Experimentell

Definiert die Struktur, der die run()-Methode innerhalb einer URL Auswahl-Ausgabe-Gate-Operation entsprechen sollte.

Beispiele

In diesem Beispiel wird eine Klasse namens SelectURLOperation in einem Worklet definiert und unter Verwendung von SharedStorageWorkletGlobalScope.register() mit dem Namen ab-testing registriert. SharedStorageSelectURLOperation definiert die Struktur, der diese Klasse entsprechen muss, und legt im Wesentlichen die Parameter fest, die für die run()-Methode erforderlich sind. Abgesehen von dieser Anforderung kann die Funktionalität der Klasse flexibel definiert werden.

js
// ab-testing-worklet.js
class SelectURLOperation {
  async run(urls, data) {
    // Read the user's experiment group from Shared Storage
    const experimentGroup = await this.sharedStorage.get("ab-testing-group");

    // Return the group number
    return experimentGroup;
  }
}

// Register the operation
register("ab-testing", SelectURLOperation);

Hinweis: Es ist möglich, mehrere Operationen im gleichen Shared-Storage-Worklet-Modulskript mit verschiedenen Namen zu definieren und zu registrieren; siehe SharedStorageOperation für ein Beispiel.

Im Hauptbrowserkontext wird die ab-testing-Operation über die WindowSharedStorage.selectURL()-Methode aufgerufen:

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

async function injectContent() {
  // Register 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();

Weitere Details zu diesem Beispiel und Links zu anderen Beispielen finden Sie auf der Shared Storage API-Startseite.

Spezifikationen

Specification
Shared Storage API
# sharedstorageselecturloperation

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch