PerformanceEntry
Базовая линия Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2015 года.
Примечание: Эта функция доступна в Потоках Web Workers.
Объект PerformanceEntry инкапсулирует один показатель производительности, который является частью временной шкалы производительности браузера.
API производительности предлагает встроенные метрики, которые являются специализированными подклассами PerformanceEntry. Это включает в себя записи для загрузки ресурсов, тайминга событий и многое другое.
Запись производительности также можно создать, вызвав методы Performance.mark() или Performance.measure() в явном месте приложения. Это позволяет добавить собственные метрики в временную шкалу производительности.
Экземпляры PerformanceEntry всегда будут одним из следующих подклассов:
LargestContentfulPaintLayoutShiftPerformanceEventTimingPerformanceLongAnimationFrameTimingPerformanceLongTaskTimingPerformanceMarkPerformanceMeasurePerformanceNavigationTimingPerformancePaintTimingPerformanceResourceTimingPerformanceScriptTimingPerformanceServerTimingTaskAttributionTimingVisibilityStateEntry
Свойства экземпляра
-
PerformanceEntry.nameТолько для чтения -
Строка, представляющая имя записи производительности. Значение зависит от подтипа.
-
PerformanceEntry.entryTypeТолько для чтения -
Строка, представляющая тип показателя производительности. Например,
"mark"при использованииPerformanceMark. -
PerformanceEntry.startTimeТолько для чтения -
DOMHighResTimeStamp, представляющий начальное время показателя производительности. -
PerformanceEntry.durationТолько для чтения -
DOMHighResTimeStamp, представляющий длительность записи производительности.
Методы экземпляра
PerformanceEntry.toJSON()-
Возвращает JSON-представление объекта
PerformanceEntry.
Пример
Работа с записями производительности
Следующий пример создаёт объекты PerformanceEntry, которые являются типами PerformanceMark и PerformanceMeasure. Подклассы PerformanceMark и PerformanceMeasure наследуют свойства duration, entryType, name, и startTime от PerformanceEntry и устанавливают их соответствующие значения.
// Place at a location in the code that starts login
performance.mark("login-started");
// Place at a location in the code that finishes login
performance.mark("login-finished");
// Measure login duration
performance.measure("login-duration", "login-started", "login-finished");
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"] });
Спецификации
Совместимость браузеров
| Десктоп | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
PerformanceEntry |
4625 | 12 | 35 | 3315 | 11 | 4625 | 35 | 3314 | 11 | 5.01.5 | 464.4 |
duration |
28 | 12 | 35 | 15 | 11 | 28 | 35 | 14 | 11 | 1.5 | 4.4 |
entryType |
28 | 12 | 35 | 15 | 11 | 28 | 35 | 14 | 11 | 1.5 | 4.4 |
name |
28 | 12 | 35 | 15 | 11 | 28 | 35 | 14 | 11 | 1.5 | 4.4 |
startTime |
28 | 12 | 35 | 15 | 11 | 28 | 35 | 14 | 11 | 1.5 | 4.4 |
toJSON |
45 | 16 | 35 | 32 | 11 | 45 | 35 | 32 | 11 | 5.0 | 45 |
worker_support |
62 | 15 | 60 | 49 | 11 | 62 | 60 | 46 | 11 | 8.0 | 62 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry