SharedStorageRunOperation
Deprecated
Avoid using this feature in new projects. This feature may be a candidate for removal from web standards or browsers.>
Das SharedStorageRunOperation Interface der Shared Storage API repräsentiert eine Run output gate Operation.
Instanzmethoden
run()-
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 gleichen Shared Storage Worklet-Modulskript mit unterschiedlichen Namen zu definieren und zu registrieren. Sehen Sie SharedStorageOperation für ein Beispiel.
Im Hauptbrowserkontext 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.