PerformanceObserverEntryList: getEntriesByName() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

注意:此功能在 Web Workers 中可用。

getEntriesByName() 方法是 PerformanceObserverEntryList 接口的一个方法,它返回一个由明确观察到的 PerformanceEntry 对象组成的列表,这些对象具有指定的 nameentryType。列表的成员由调用 observe() 方法时指定的 entry types 集合决定。该列表在观察者的回调函数中可用(作为回调函数中的第一个参数)。

语法

js
getEntriesByName(name)
getEntriesByName(name, type)

参数

name

一个表示要检索条目名称的字符串。

type 可选

一个表示要检索的条目类型的字符串,例如 "mark"。有效的条目类型列在 PerformanceEntry.entryType 中。

返回值

一个由明确观察到performance entry 对象组成的列表,这些对象具有指定的 nametype。如果未指定 type 参数,则仅使用 name 来确定要返回的条目。列表中的项将按照条目的 startTime 升序排列。如果没有对象符合指定的条件,则返回一个空列表。

示例

使用 getEntries、getEntriesByName 和 getEntriesByType

以下示例显示了 getEntries()getEntriesByName()getEntriesByType() 方法之间的区别。

js
const observer = new PerformanceObserver((list, obs) => {
  // Log all entries
  let perfEntries = list.getEntries();
  perfEntries.forEach((entry) => {
    console.log(`${entry.name}'s duration: ${entry.duration}`);
  });

  // Log entries named "debugging" with type "measure"
  perfEntries = list.getEntriesByName("debugging", "measure");
  perfEntries.forEach((entry) => {
    console.log(`${entry.name}'s duration: ${entry.duration}`);
  });

  // Log entries with type "mark"
  perfEntries = list.getEntriesByType("mark");
  perfEntries.forEach((entry) => {
    console.log(`${entry.name}'s startTime: ${entry.startTime}`);
  });
});

// Subscribe to various performance event types
observer.observe({
  entryTypes: ["mark", "measure", "navigation", "resource"],
});

规范

规范
性能时间线
# dom-performanceobserverentrylist-getentriesbyname

浏览器兼容性