Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

WorkletSharedStorage

Deprecated

Avoid using this feature in new projects. This feature may be a candidate for removal from web standards or browsers.

Das Interface WorkletSharedStorage der Shared Storage API repräsentiert den gemeinsam genutzten Speicher für einen bestimmten Ursprung innerhalb eines Worklet-Kontexts.

Auf WorkletSharedStorage wird über SharedStorageWorkletGlobalScope.sharedStorage zugegriffen.

Instanzeigenschaften

context Schreibgeschützt

Enthält Kontextdaten, die über die Methode FencedFrameConfig.setSharedStorageContext() aus dem zugehörigen Browsing-Kontext an das Shared-Storage-Worklet übergeben wurden.

Instanzmethoden

WorkletSharedStorage erbt Eigenschaften von seinem übergeordneten Interface SharedStorage.

get()

Ruft einen Wert aus dem gemeinsam genutzten Speicher ab.

length()

Gibt die Anzahl der Einträge zurück, die derzeit für den aktuellen Ursprung im gemeinsam genutzten Speicher gespeichert sind.

remainingBudget()

Gibt das verbleibende Navigationsbudget für den aktuellen Ursprung zurück.

WorkletSharedStorage umfasst außerdem die folgenden Methoden, da dafür ein asynchroner Iterator definiert ist:

entries()

Gibt einen neuen asynchronen Iterator für die Schlüssel-Wert-Paare der aufzählbaren Eigenschaften einer WorkletSharedStorage-Objektinstanz zurück.

keys()

Gibt einen neuen asynchronen Iterator zurück, der die Schlüssel für jeden Eintrag einer WorkletSharedStorage-Objektinstanz enthält.

WorkletSharedStorage[Symbol.asyncIterator]()

Gibt standardmäßig die Funktion entries() zurück.

Beispiele

Kontextdaten über setSharedStorageContext() übergeben

Sie können die Private Aggregation API verwenden, um Berichte zu erstellen, die Ereignisdaten innerhalb von Fenced Frames mit Kontextdaten aus dem einbettenden Dokument kombinieren. Mit setSharedStorageContext() können Kontextdaten vom einbettenden Dokument an Shared-Storage-Worklets übergeben werden, die durch die Protected Audience API gestartet wurden.

In diesem Beispiel speichern wir sowohl Daten der einbettenden Seite als auch Daten des Fenced Frames im gemeinsam genutzten Speicher.

Auf der einbettenden Seite legen wir mit setSharedStorageContext() eine beispielhafte Ereignis-ID als Shared-Storage-Kontext fest:

js
const frameConfig = await navigator.runAdAuction({ resolveToConfig: true });

// Data from the embedder that you want to pass to the shared storage worklet
frameConfig.setSharedStorageContext("some-event-id");

const frame = document.createElement("fencedframe");
frame.config = frameConfig;

Innerhalb des Fenced Frames senden wir, nachdem wir das Worklet-Modul mit window.sharedStorage.worklet.addModule() hinzugefügt haben, die Ereignisdaten mit window.sharedStorage.run() an das Shared-Storage-Worklet-Modul. Dies ist unabhängig von den Kontextdaten aus dem einbettenden Dokument:

js
const frameData = {
  // Data available only inside the fenced frame
};

await window.sharedStorage.worklet.addModule("reporting-worklet.js");

await window.sharedStorage.run("send-report", {
  data: {
    frameData,
  },
});

Im Worklet reporting-worklet.js lesen wir die Ereignis-ID des einbettenden Dokuments aus sharedStorage.context und die Ereignisdaten des Frames aus dem Datenobjekt. Anschließend melden wir diese Daten über Private Aggregation:

js
class ReportingOperation {
  convertEventIdToBucket(eventId) {
    // …
  }
  convertEventPayloadToValue(info) {
    // …
  }

  async run(data) {
    // Data from the embedder
    const eventId = sharedStorage.context;

    // Data from the fenced frame
    const eventPayload = data.frameData;

    privateAggregation.sendHistogramReport({
      bucket: convertEventIdToBucket(eventId),
      value: convertEventPayloadToValue(eventPayload),
    });
  }
}

register("send-report", ReportingOperation);

Spezifikationen

Diese Funktion scheint in keiner Spezifikation definiert zu sein.

Browser-Kompatibilität

Siehe auch