WorkletSharedStorage
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 WorkletSharedStorage
-Schnittstelle der Shared Storage API repräsentiert den gemeinsamen Speicher für einen bestimmten Ursprung innerhalb eines Worklet-Kontexts.
WorkletSharedStorage
wird über SharedStorageWorkletGlobalScope.sharedStorage
aufgerufen.
Instanz-Eigenschaften
context
Experimentell Nicht standardisiert-
Enthält kontextuelle Daten, die über die Methode
FencedFrameConfig.setSharedStorageContext()
in den gemeinsamen Speicher-Worklet aus dem zugehörigen Browserkontext übergeben wurden.
Instanz-Methoden
WorkletSharedStorage
erbt Eigenschaften von seiner Elternschnittstelle, 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
beinhaltet auch die folgenden Methoden, da ein asynchroner Iterator darauf definiert ist:
entries()
Experimentell-
Gibt einen neuen asynchronen Iterator für die Schlüssel-Wert-Paare der aufzählbaren Eigenschaften einer
WorkletSharedStorage
-Objektinstanz zurück. keys()
Experimentell-
Gibt einen neuen asynchronen Iterator zurück, der die Schlüssel für jedes Element einer
WorkletSharedStorage
-Objektinstanz enthält. -
Gibt standardmäßig die
entries()
-Funktion zurück.
Beispiele
Kontextuelle Daten mittels setSharedStorageContext()
übergeben
Sie können die Private Aggregation API verwenden, um Berichte zu erstellen, die Ereignisleveldaten innerhalb eingezäunter Frames mit kontextuellen Daten aus dem eingebetteten Dokument kombinieren. setSharedStorageContext()
kann verwendet werden, um kontextuelle Daten vom Einbettungsdokument an gemeinsam genutzte Speicher-Worklets zu übergeben, die von der Protected Audience API initiiert wurden.
In diesem Beispiel speichern wir Daten sowohl von der einbettenden Seite als auch vom fenced frame mithilfe von shared storage.
Auf der einbettenden Seite setzen wir eine mock Event-ID als gemeinsam genutzten Speicherungskontext mit setSharedStorageContext()
:
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, nachdem das Worklet-Modul mit window.sharedStorage.worklet.addModule()
hinzugefügt wurde, senden wir die Ereignisleveldaten in das Modul des gemeinsam genutzten Speichers mit window.sharedStorage.run()
(dies hat keinen Bezug zu den kontextuellen Daten aus dem Einbettungsdokument):
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 Ereignis-ID des einbetteten Dokuments von sharedStorage.context
und die Ereignisleveldaten des Frames aus dem Datenobjekt. Wir berichten sie dann durch Private Aggregation:
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
Specification |
---|
Shared Storage API # workletsharedstorage |
Browser-Kompatibilität
BCD tables only load in the browser