PerformanceObserverEntryList: getEntriesByName() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

getEntriesByName()PerformanceObserverEntryList インターフェイスのメソッドで、指定された名前 (name) と項目型 (entryType) について、明示的に監視された PerformanceEntry オブジェクトのリストを返します。リストのメンバーは、observe() メソッドを呼び出す際に指定された項目型の集合によって決定されます。 このリストは、オブザーバーのコールバック関数(コールバックの最初の引数)で利用できます。

構文

js
getEntriesByName(name)
getEntriesByName(name, type)

引数

name

取得する項目名を表す文字列。

type 省略可

取得する項目の型を表す文字列。例えば "mark" などです。有効な項目型は、PerformanceEntry.entryType に掲載されています。

返値

明示的に監視されているパフォーマンス項目オブジェクトで、指定された名前 (name) と型 (type) を持つもののリストです。type 引数が指定されなかった場合、返値の項目は name のみで決定されます。 項目は、項目の startTime に基づいて時系列順に並べられます。 指定された条件に一致するオブジェクトが存在しない場合、空のリストが返されます。

getEntries, getEntriesByName, getEntriesByType の扱い

次の例は、getEntries()getEntriesByName()getEntriesByType() の各メソッドの違いを示しています。

js
const observer = new PerformanceObserver((list, obs) => {
  // すべての項目をログ出力
  let perfEntries = list.getEntries();
  perfEntries.forEach((entry) => {
    console.log(`${entry.name} の時間: ${entry.duration}`);
  });

  // "debugging" という名前の "measure" 型の項目をログ出力
  perfEntries = list.getEntriesByName("debugging", "measure");
  perfEntries.forEach((entry) => {
    console.log(`${entry.name} の時間: ${entry.duration}`);
  });

  // "mark" 型の項目をログ出力
  perfEntries = list.getEntriesByType("mark");
  perfEntries.forEach((entry) => {
    console.log(`${entry.name} の開始時刻: ${entry.startTime}`);
  });
});

// さまざまなパフォーマンスイベント型を監視
observer.observe({
  entryTypes: ["mark", "measure", "navigation", "resource"],
});

仕様書

Specification
Performance Timeline
# dom-performanceobserverentrylist-getentriesbyname

ブラウザーの互換性

BCD tables only load in the browser