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> |