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

瀏覽器相容性