Производительность: метод mark()
Базовая реализация Широко доступная
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2015 года.
Примечание: Эта функция доступна в Потоках веб-работы.
Метод mark() создает именованный объект PerformanceMark, представляющий собой маркер отметки времени с высоким разрешением на временной шкале производительности браузера.
Синтаксис
mark(name) mark(name, markOptions)
Параметры
name-
Строка, представляющая имя отметки. Не должно совпадать с именем одного из свойств устаревшего интерфейса
PerformanceTiming. markOptionsНеобязательно-
Объект для указания отметки времени и дополнительной метаданных для отметки.
detailНеобязательно-
Произвольные метаданные, которые нужно включить в отметку. По умолчанию
null. Должны быть структурируемо клонируемыми. startTimeНеобязательно-
DOMHighResTimeStampдля использования в качестве времени отметки. По умолчаниюperformance.now().
Возвращаемое значение
Элемент PerformanceMark, который был создан.
Исключения
-
SyntaxError: Бросается, если имяnameсовпадает с именем одного из свойств устаревшего интерфейсаPerformanceTiming. См. пример ниже . -
TypeError: Бросается, если значениеstartTimeотрицательное.
Примеры
Создание именованных маркеров
В следующем примере используется mark() для создания именованных элементов PerformanceMark. Вы можете создать несколько маркеров с одинаковым именем. Вы также можете присвоить их, чтобы иметь ссылку на объект PerformanceMark, который был создан.
performance.mark("login-started");
performance.mark("login-started");
performance.mark("login-finished");
performance.mark("form-sent");
const videoMarker = performance.mark("video-loaded");
Создание маркеров с подробностями
Маркер производительности настраивается с помощью объекта markOptions, где вы можете добавить дополнительную информацию в свойство detail, которое может быть любого типа.
performance.mark("login-started", {
detail: "Login started using the login button in the top menu.",
});
performance.mark("login-started", {
detail: { htmlElement: myElement.id },
});
Создание маркеров с другим временем начала
Значение по умолчанию для отметки времени в методе mark() — performance.now(). Вы можете задать другое время, используя параметр startTime в markOptions.
performance.mark("start-checkout", {
startTime: 20.0,
});
performance.mark("login-button-pressed", {
startTime: myEvent.timeStamp,
});
Зарезервированные имена
Для обеспечения обратной совместимости нельзя использовать имена, которые являются частью устаревшего интерфейса PerformanceTiming. В следующем примере возникает ошибка:
performance.mark("navigationStart");
// SyntaxError: "navigationStart" is part of
// the PerformanceTiming interface,
// and cannot be used as a mark name
Спецификации
| Спецификация |
|---|
| User Timing # dom-performance-mark |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
mark |
28–25 | 12 | 38 | 33 | 11 | 28–25 | 42 | 33 | 11 | 1.5 | 4.4 |
markOptions_parameter |
78 | 79 | 101 | 65 | 14.1 | 78 | 101 | 56 | 14.5 | 12.0 | 78 |
returns_performancemark |
78 | 79 | 101 | 65 | 14.1 | 78 | 101 | 56 | 14.5 | 12.0 | 78 |
© 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/Performance/mark