PerformanceEntry: name property
Note: This feature is available in Web Workers
The read-only name
property of the PerformanceEntry
interface is a string representing the name for a performance entry. It acts as an identifier, but it does not have to be unique. The value depends on the subclass.
Value
A string. The value depends on the subclass of the PerformanceEntry
object as shown by the table below.
Subclass | Value |
---|---|
LargestContentfulPaint |
Always returns an empty string. |
LayoutShift |
Always returns "layout-shift" . |
PerformanceElementTiming |
One of the following strings:
|
PerformanceEventTiming |
The associated event's type. |
PerformanceLongTaskTiming |
One of the following strings:
|
PerformanceMark |
The name used when the mark was created by calling
performance.mark() .
|
PerformanceMeasure |
The name used when the measure was created by calling
performance.measure() .
|
PerformanceNavigationTiming |
The resolved URL of the requested resource. This value doesn't change even if the request is redirected. |
PerformancePaintTiming |
One of the following strings:
|
PerformanceResourceTiming |
The resolved URL of the requested resource. This value doesn't change even if the request is redirected. |
TaskAttributionTiming |
Always returns "unknown" . |
VisibilityStateEntry |
One of the following strings:
|
Examples
Filtering performance entries by name
When the PerformanceEntry
is a PerformanceResourceTiming
object, the name
property refers to the resolved URL of the requested resource.
In this case, the name
property can be useful to filter out specific resources, for example all SVG images.
js
// Log durations of SVG resources
performance.getEntriesByType("resource").forEach((entry) => {
if (entry.name.endsWith(".svg")) {
console.log(`${entry.name}'s duration: ${entry.duration}`);
}
});
Getting performance entries by name
Both Performance
and PerformanceObserver
provide methods that allow you to get performance entries by name directly. You don't necessarily need the name
property for that, instead you might use Performance.getEntriesByName()
or PerformanceObserverEntryList.getEntriesByName()
.
js
// Log all marks named "debug-marks" at this point in time
const debugMarks = performance.getEntriesByName("debug-mark", "mark");
debugMarks.forEach((entry) => {
console.log(`${entry.name}'s startTime: ${entry.startTime}`);
});
// PerformanceObserver version
// Log all marks named "debug-marks" when they happen
function perfObserver(list, observer) {
list.getEntriesByName("debug-mark", "mark").forEach((entry) => {
console.log(`${entry.name}'s startTime: ${entry.startTime}`);
});
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ entryTypes: ["measure", "mark"] });
Specifications
Specification |
---|
Performance Timeline # dom-performanceentry-name |
Browser compatibility
BCD tables only load in the browser