SharedStorageRunOperation

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

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.

js
// 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:

js
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

No specification found

No specification data found for api.SharedStorageRunOperation.
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.

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch