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. -
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()
:
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):
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:
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.