PerformanceEntry: startTime 屬性

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本使用。自 2017 年 9 月以來,它已在瀏覽器中提供。

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

只讀的 startTime 屬性返回為此 PerformanceEntry 記錄的第一個 timestamp。此屬性的含義取決於此條目 entryType 的值。

一個 DOMHighResTimeStamp,表示建立 PerformanceEntry 時的第一個時間戳。

此屬性的含義取決於此效能條目的 entryType 的值。

element

如果此條目的 renderTime 值不為 0,則返回該值;否則返回此條目的 loadTime 的值。

event

事件建立的時間,即事件的 timeStamp 屬性。

first-input

第一次輸入事件建立的時間,即該事件的 timeStamp

largest-contentful-paint

如果此條目的 renderTime 值不為 0,則返回該值;否則返回此條目的 loadTime 的值。

layout-shift

佈局移位開始的時間。

longtask

任務開始的時間。

mark

透過呼叫 performance.mark() 建立標記的時間。

measure

透過呼叫 performance.measure() 建立度量的時間。

始終為 0

paint

發生繪製的時間。

resource

此條目的 fetchStart 屬性的值。

taskattribution

始終為 0

visibility-state

發生可見性狀態更改的時間。

示例

使用 startTime 屬性

以下示例展示了 startTime 屬性的使用,您可以在效能觀察期間記錄它。

注意:performance.mark() 方法允許您設定自己的 startTime,而 performance.measure() 方法允許設定度量的開始時間。

js
performance.mark("my-mark");
performance.mark("my-other-mark", { startTime: 12.5 });

loginButton.addEventListener("click", (clickEvent) => {
  performance.measure("login-click", { start: clickEvent.timeStamp });
});

function perfObserver(list, observer) {
  list.getEntries().forEach((entry) => {
    if (entry.entryType === "mark") {
      console.log(`${entry.name}'s startTime: ${entry.startTime}`);
    }
    if (entry.entryType === "measure") {
      console.log(`${entry.name}'s duration: ${entry.duration}`);
    }
  });
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ entryTypes: ["measure", "mark"] });

規範

規範
效能時間線
# dom-performanceentry-starttime

瀏覽器相容性