The duration property returns a timestamp that is the duration of the performance entry.
The value returned by this property depends on the performance entry's type:
frame" - returns a timestamp indicating the difference between the startTimes of two successive frames.mark" - returns "0" (a mark has no duration).measure" - returns the timestamp that is the duration of the measure.navigation" - returns the timestamp that is the difference between the PerformanceNavigationTiming.loadEventEnd and PerformanceEntry.startTime properties, respectively.resource" - returns the difference between the resource's responseEnd timestamp and its startTime timestamp.This property is Read only .
entry.duration;
A DOMHighResTimeStamp representing the duration of the performance entry. If the duration concept doesn't apply for a particular performance metric, the browser may choose to return a duration of 0.
Note: if the performance entry has an entryType of "resource" (i.e. the entry is a PerformanceResourceTiming object), this property returns the difference between the PerformanceEntry.responseEnd and PerformanceEntry.startTime timestamps.
The following example shows the use of the duration property.
function run_PerformanceEntry() {
log("PerformanceEntry support ...");
if (performance.mark === undefined) {
log("... performance.mark Not supported");
return;
}
// Create some performance entries via the mark() method
performance.mark("Begin");
do_work(50000);
performance.mark("End");
// Use getEntries() to iterate through the each entry
var p = performance.getEntries();
for (var i=0; i < p.length; i++) {
log("Entry[" + i + "]");
check_PerformanceEntry(p[i]);
}
}
function check_PerformanceEntry(obj) {
var properties = ["name", "entryType", "startTime", "duration"];
var methods = ["toJSON"];
for (var i=0; i < properties.length; i++) {
// check each property
var supported = properties[i] in obj;
if (supported)
log("..." + properties[i] + " = " + obj[properties[i]]);
else
log("..." + properties[i] + " = Not supported");
}
for (var i=0; i < methods.length; i++) {
// check each method
var supported = typeof obj[methods[i]] == "function";
if (supported) {
var js = obj[methods[i]]();
log("..." + methods[i] + "() = " + JSON.stringify(js));
} else {
log("..." + methods[i] + " = Not supported");
}
}
}
| Specification | Status | Comment |
|---|---|---|
| Performance Timeline Level 2 The definition of 'duration' in that specification. | Candidate Recommendation | |
| Performance Timeline The definition of 'duration' in that specification. | Recommendation | Initial definition. |
| Desktop | ||||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | |
| Basic support | Yes | Yes | Yes | Yes | Yes | 11 |
| Mobile | |||||||
|---|---|---|---|---|---|---|---|
| Android webview | Chrome for Android | Edge Mobile | Firefox for Android | Opera for Android | iOS Safari | Samsung Internet | |
| Basic support | Yes | Yes | Yes | 25 | Yes | 11 | ? |
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry/duration