PressureObserver

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

注意:此功能在 Web Workers 中可用,但 Service Workers 除外。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

PressureObserver 接口是 Compute Pressure API 的一部分,用于观察 CPU 等系统资源的压力变化。

构造函数

PressureObserver() 实验性

创建并返回一个新的 PressureObserver 对象。

静态属性

PressureObserver.knownSources 只读 实验性

返回用户代理支持的 source 值的数组。

实例方法

PressureObserver.observe() 实验性

当观察到指定 source 的压力记录时,调用压力观察器的回调函数。

PressureObserver.unobserve() 实验性

阻止压力观察器回调从指定 source 接收压力记录。

PressureObserver.disconnect() 实验性

阻止压力观察器回调从所有源接收压力记录。

PressureObserver.takeRecords() 实验性

返回存储在压力观察器中的当前压力记录列表,并清空它。

示例

记录当前压力

此示例创建了一个 PressureObserver,并在每次发生压力变化时采取相应操作。采样间隔设置为 1000 毫秒,这意味着最多每秒会有一次更新。

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
}

规范

规范
计算压力级别 1
# the-pressureobserver-object

浏览器兼容性

另见