SharedStorageRunOperation
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 SharedStorageRunOperation
-Schnittstelle der Shared Storage API repräsentiert eine Run output gate Operation.
Instanzmethoden
run()
Experimentell-
Definiert die Struktur, der die
run()
-Methode, die innerhalb einer Run output gate Operation definiert ist, entsprechen sollte.
Beispiele
In diesem Beispiel wird eine Klasse namens ReachMeasurementOperation
in einem Worklet definiert und mit SharedStorageWorkletGlobalScope.register()
unter dem Namen reach-measurement
registriert. SharedStorageRunOperation
definiert die Struktur, der diese Klasse entsprechen muss, und legt im Wesentlichen die Parameter fest, die für die run()
-Methode erforderlich sind. Abgesehen von dieser Anforderung kann die Funktionalität der Klasse flexibel definiert werden.
// reach-measurement-worklet.js
const SCALE_FACTOR = 65536;
function convertContentIdToBucket(contentId) {
return BigInt(contentId);
}
class ReachMeasurementOperation {
async run(data) {
const { contentId } = data;
// Read from Shared Storage
const key = "has-reported-content";
const hasReportedContent = (await this.sharedStorage.get(key)) === "true";
// Do not report if a report has been sent already
if (hasReportedContent) {
return;
}
// Generate the aggregation key and the aggregatable value
const bucket = convertContentIdToBucket(contentId);
const value = 1 * SCALE_FACTOR;
// Send an aggregatable report via the Private Aggregation API
privateAggregation.sendHistogramReport({ bucket, value });
// Set the report submission status flag
await this.sharedStorage.set(key, true);
}
}
// Register the operation
register("reach-measurement", ReachMeasurementOperation);
Hinweis: Es ist möglich, mehrere Operationen im selben Shared Storage Worklet-Modulskript mit unterschiedlichen Namen zu definieren und zu registrieren. Siehe SharedStorageOperation
für ein Beispiel.
Im Hauptbrowsing-Kontext wird die reach-measurement
-Operation mit der WindowSharedStorage.run()
Methode aufgerufen:
async function measureUniqueReach() {
// Load the Shared Storage worklet
await window.sharedStorage.worklet.addModule("reach-measurement-worklet.js");
// Run the reach measurement operation
await window.sharedStorage.run("reach-measurement", {
data: { contentId: "1234" },
});
}
measureUniqueReach();
Für weitere Details zu diesem Beispiel siehe Unique reach measurement. Weitere Beispiele finden Sie in der Shared Storage API.
Spezifikationen
Specification |
---|
Shared Storage API # sharedstoragerunoperation |
Browser-Kompatibilität
BCD tables only load in the browser