Performance: mark() Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die mark() Methode erstellt ein benanntes PerformanceMark-Objekt, das einen hochauflösenden Zeitstempel-Marker in der Leistungstimeline des Browsers darstellt.
Syntax
mark(name) mark(name, markOptions) Parameter
name-
Ein String, der den Namen des Markers darstellt. Darf nicht denselben Namen wie eine der Eigenschaften der veralteten
PerformanceTiming-Schnittstelle haben. markOptionsOptional-
Ein Objekt zur Angabe eines Zeitstempels und zusätzlicher Metadaten für den Marker.
detailOptional-
Beliebige Metadaten, die in den Marker aufgenommen werden. Standardmäßig
null. Muss structured-cloneable sein.devtoolsOptional Experimentell-
Einige Browser verwenden ein strukturiertes
devtools-Objekt innerhalb desdetail-Objekts als Teil einer Extensibility API, um diese in benutzerdefinierten Spuren in Leistungsprofilen anzuzeigen. Weitere Informationen finden Sie in der Chrome's Extensibility API Dokumentation.dataTypeExperimentell-
Ein String, der auf
markergesetzt werden muss. Identifiziert als ein Marker. colorOptional Experimentell-
Standard ist
"primary". Muss einer von"primary","primary-light","primary-dark","secondary","secondary-light","secondary-dark","tertiary","tertiary-light","tertiary-dark","error"sein. propertiesOptional Experimentell-
Array von Schlüssel-Wert-Paaren. Werte können jeden JSON-kompatiblen Typ haben.
tooltipTextOptional Experimentell-
Kurzbeschreibung für Tooltip.
startTimeOptional-
DOMHighResTimeStamp, der als Markierungszeit verwendet werden soll. Standardmäßigperformance.now().
Rückgabewert
Der erstellte PerformanceMark-Eintrag.
Ausnahmen
SyntaxError: Wird ausgelöst, wenn dernameeiner der Eigenschaften der veraltetenPerformanceTiming-Schnittstelle ist. Siehe das Beispiel unten.TypeError: Wird ausgelöst, wennstartTimenegativ ist.
Beispiele
>Erstellen benannter Marker
Im folgenden Beispiel wird mark() verwendet, um benannte PerformanceMark-Einträge zu erstellen. Sie können mehrere Marker mit demselben Namen erstellen. Sie können sie auch zuweisen, um eine Referenz auf das erstellte PerformanceMark-Objekt zu haben.
performance.mark("login-started"); performance.mark("login-started"); performance.mark("login-finished"); performance.mark("form-sent"); const videoMarker = performance.mark("video-loaded"); Erstellen von Markern mit Details
Der Leistungsmarker ist konfigurierbar über das markOptions-Objekt, in dem Sie zusätzliche Informationen in der detail-Eigenschaft angeben können, die von jedem Typ sein kann.
performance.mark("login-started", { detail: "Login started using the login button in the top menu.", }); performance.mark("login-started", { detail: { htmlElement: myElement.id }, }); Erstellen von Markern mit einer anderen Startzeit
Der Standard-Zeitstempel der mark()-Methode ist performance.now(). Sie können ihn mit der startTime-Option in markOptions auf eine andere Zeit setzen.
performance.mark("start-checkout", { startTime: 20.0, }); performance.mark("login-button-pressed", { startTime: myEvent.timeStamp, }); Extensibility API von DevTools
Für Browser, die die Extensibility API unterstützen, können Sie den detail-Parameter verwenden, um mehr Details in einem devtools-Objekt anzugeben, das verwendet wird, um dies in Leistungsprofilen anzuzeigen:
// Marker indicating when the processed image was uploaded performance.mark("Image Upload", { detail: { devtools: { dataType: "marker", color: "secondary", properties: [ ["Image Size", "2.5MB"], ["Upload Destination", "Cloud Storage"], ], tooltipText: "Processed image uploaded", }, }, }); Reservierte Namen
Beachten Sie, dass zur Aufrechterhaltung der Rückwärtskompatibilität keine Namen verwendet werden können, die Teil der veralteten PerformanceTiming-Schnittstelle sind. Das folgende Beispiel löst eine Ausnahme aus:
performance.mark("navigationStart"); // SyntaxError: "navigationStart" is part of // the PerformanceTiming interface, // and cannot be used as a mark name Spezifikationen
| Specification |
|---|
| User Timing> # dom-performance-mark> |