WorkletSharedStorage

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

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

Auf WorkletSharedStorage wird über SharedStorageWorkletGlobalScope.sharedStorage zugegriffen.

Instanz-Eigenschaften

context Experimentell Nicht standardisiert

Beinhaltet kontextbezogene Daten, die über die Methode FencedFrameConfig.setSharedStorageContext() vom zugehörigen Browsing-Kontext in das gemeinsame Speicher-Worklet übergeben werden.

Instanz-Methoden

WorkletSharedStorage erbt Eigenschaften von seinem übergeordneten Interface, SharedStorage.

get() Experimentell

Ruft einen Wert aus dem gemeinsamen Speicher ab.

length() Experimentell

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

remainingBudget() Experimentell

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

WorkletSharedStorage enthält auch die folgenden Methoden, da es einen async iterator definiert hat:

entries() Experimentell

Gibt einen neuen async iterator für die Schlüssel-Wert-Paare der aufzählbaren Eigenschaften eines WorkletSharedStorage Objekt-Instanzes zurück.

keys() Experimentell

Gibt einen neuen async iterator zurück, der die Schlüssel für jedes Element in einer WorkletSharedStorage Objekt-Instanz enthält.

WorkletSharedStorage[Symbol.asyncIterator]() Experimentell

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

Beispiele

Kontextbezogene Daten über setSharedStorageContext() übermitteln

Sie können die Private Aggregation API verwenden, um Berichte zu erstellen, die Veranstaltungsdaten auf Ebene von Ereignissen innerhalb von geschützten Frames mit kontextbezogenen Daten aus dem einbettenden Dokument kombinieren. setSharedStorageContext() kann verwendet werden, um kontextbezogene Daten vom Einbettungselement an Worklets des gemeinsamen Speichers, die durch die Protected Audience API initiiert werden, zu übermitteln.

In diesem Beispiel speichern wir Daten sowohl von der einbettenden Seite als auch vom geschützten Frame mithilfe von shared storage.

Auf der einbettenden Seite setzen wir eine simulierte Ereignis-ID als gemeinsamen Speicher-Kontext mittels setSharedStorageContext():

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 geschützten Frames, nachdem das Worklet-Modul mit window.sharedStorage.worklet.addModule() hinzugefügt wurde, senden wir die Ereignis-Level-Daten in das Worklet-Modul für den gemeinsamen Speicher mittels window.sharedStorage.run() (dies ist unabhängig von den kontextbezogenen Daten des einbettenden Dokuments):

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 Ereignis-Level-Daten des Frames aus dem Datenobjekt. Wir berichten diese dann ü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

No specification found

No specification data found for api.WorkletSharedStorage.
Check for problems with this page or contribute a missing spec_url to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser-Kompatibilität

Siehe auch