PressureObserver: observe() Methode

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 vor der Verwendung auf produktiven Webseiten.

Hinweis: Diese Funktion ist in Web Workers verfügbar, mit Ausnahme von Service Workers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die observe()-Methode des PressureObserver-Interfaces teilt dem Druckbeobachter mit, die Überwachung von Druckänderungen zu starten. Nachdem diese Methode aufgerufen wurde, wird der Beobachter seine Callback-Funktion aufrufen, wenn ein Druckdatensatz für die angegebene source festgestellt wird.

Wenn ein passender PressureRecord ermittelt wird, wird die Callback-Funktion des Druckbeobachters aufgerufen.

Syntax

js
observe(source)
observe(source, options)

Parameter

source

Ein String, der angibt, welche source überwacht werden soll. Siehe PressureRecord.source für eine Liste von Quellen und PressureObserver.knownSources für eine Liste der Quellen, die der Benutzeragent unterstützt.

options Optional

Ein Objekt zur Konfiguration der Überwachung mit den folgenden Eigenschaften:

sampleInterval Optional

Eine Zahl, die das angeforderte Abtastintervall in Millisekunden angibt. Standardmäßig 0, was bedeutet, dass Updates so schnell wie möglich vom System verarbeitet werden.

Rückgabewert

Ein Promise, das mit undefined erfüllt wird.

Ausnahmen

NotAllowedError DOMException

Wird ausgelöst, wenn die Compute Pressure API durch eine compute-pressure Berechtigungsrichtlinie abgelehnt wird.

NotSupportedError DOMException

Wird ausgelöst, wenn der source-Parameter nicht eine der unterstützten Quellen für diesen Benutzeragenten ist.

Beispiele

Aktuellen Druck protokollieren

Dieses Beispiel erstellt einen PressureObserver und trifft Maßnahmen, wenn immer ein Druckwechsel auftritt. Das Abtastintervall ist auf 1000 ms eingestellt, was bedeutet, dass es höchstens alle Sekunde Updates geben wird.

js
function callback(records) {
  const lastRecord = records[records.length - 1];
  console.log(`Current pressure ${lastRecord.state}`);
  if (lastRecord.state === "critical") {
    // disable video feeds
  } else if (lastRecord.state === "serious") {
    // disable video filter effects
  } else {
    // enable all video feeds and filter effects
  }
}

try {
  const observer = new PressureObserver(callback);
  await observer.observe("cpu", {
    sampleInterval: 1000, // 1000ms
  });
} catch (error) {
  // report error setting up the observer
}

Spezifikationen

Specification
Compute Pressure Level 1
# the-observe-method

Browser-Kompatibilität

BCD tables only load in the browser