This article needs a technical review. How you can help.
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 atimestamp
indicating the difference between thestartTime
s of two successive frames. - "
mark
" - returns "0
" (a mark has no duration). - "
measure
" - returns thetimestamp
that is the duration of the measure. - "
navigation
" - returns thetimestamp
that is the difference between thePerformanceNavigationTiming.loadEventEnd
andPerformanceEntry.startTime
properties, respectively. - "
resource
" - returns the difference between the resource'sresponseEnd
timestamp
and itsstartTime
timestamp
.
This property is Read only .
Syntax
entry.duration;
Return value
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
.
Example
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"); } } }
Specifications
Specification | Status | Comment |
---|---|---|
Performance Timeline Time Level 2 The definition of 'duration' in that specification. |
Editor's Draft | |
Performance Timeline The definition of 'duration' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support. | (Yes) | (Yes) | (Yes) | (Yes) | No support |
Feature | Android | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support. | (Yes) | 25.0 (25.0) | 1.2 (25.0) | 10.0 | (Yes) | No support |