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 thePerformanceEntry.loadEventEnd
andPerformanceEntry.startTime
properties, respectively.例如: entry.entryType "navigation",entry.duration 3611.26, entry.loadEventEnd 3611.2672285754975, entry.startTime 0; - "
resource
" - 返回 resource 的responseEnd
timestamp
和startTime
timestamp
的时间差. 例如: entry.entryType "resource",entry.duration 901.1400000000001, entry.responseEnd 2527.82, entry.startTime 1626.68, 2527.82 - 1626.68 == 901.1400000000001;
This property is 只读 .
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 Level 2 duration |
Candidate Recommendation | |
Performance Timeline duration |
Recommendation | Initial definition. |
Browser compatibility
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.