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.

Die WorkletSharedStorage-Schnittstelle 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

Enthält kontextbezogene Daten, die in den gemeinsamen Speicher-Worklet vom zugehörigen Browsing-Kontext über die Methode FencedFrameConfig.setSharedStorageContext() übergeben wurden.

Instanz-Methoden

WorkletSharedStorage erbt Eigenschaften von seiner übergeordneten Schnittstelle, SharedStorage.

get()

Ruft einen Wert aus dem gemeinsamen Speicher ab.

length()

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

remainingBudget()

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

WorkletSharedStorage enthält auch die folgenden Methoden, da es einen asynchronen Iterator darauf definiert hat:

entries()

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

keys()

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

WorkletSharedStorage[Symbol.asyncIterator]()

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

Beispiele

Kontextbezogene Daten über setSharedStorageContext() übergeben

Sie können die Private Aggregation API verwenden, um Berichte zu erstellen, die Ereignis-Level-Daten innerhalb von geschützten Frames mit kontextbezogenen Daten aus dem einbettenden Dokument kombinieren. setSharedStorageContext() kann verwendet werden, um kontextbezogene Daten vom Einbettenden zu den von der Protected Audience API initiierten gemeinsamen Speicher-Worklets zu übermitteln.

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

Auf der einbettenden Seite setzen wir eine Mock-Event-ID als Kontext für den gemeinsamen Speicher mit 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, nach dem Hinzufügen des Worklet-Moduls mit window.sharedStorage.worklet.addModule(), senden wir die Ereignis-Level-Daten in das gemeinsame Speicher-Worklet-Modul mit window.sharedStorage.run() (dies steht nicht im Zusammenhang mit den kontextbezogenen Daten 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 reporting-worklet.js-Worklet lesen wir die Event-ID des einbettenden Dokuments aus sharedStorage.context und die Ereignis-Level-Daten des Frames aus dem Datenobjekt. Wir berichten sie dann durch 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