Skip to content

Latest commit

 

History

History
63 lines (44 loc) · 2.29 KB

File metadata and controls

63 lines (44 loc) · 2.29 KB
title IdleDeadline: timeRemaining() method
short-title timeRemaining()
slug Web/API/IdleDeadline/timeRemaining
page-type web-api-instance-method
browser-compat api.IdleDeadline.timeRemaining

{{APIRef("Background Tasks")}}

The timeRemaining() method of the {{domxref("IdleDeadline")}} interface returns the estimated number of milliseconds the user agent will remain idle for. The callback can call this method at any time to determine how much time it can continue to work before it must return. For example, if the callback finishes a task and has another one to begin, it can call timeRemaining() to see if there's enough time to complete the next task. If there isn't, the callback can just return immediately, or look for other work to do with the remaining time.

By the time timeRemaining() reaches 0, it is suggested that the callback should return control to the user agent's event loop.

Note

The value returned by timeRemaining() is an estimate of how much time the user agent believes is available before the next latency-critical task needs to run. This estimate is not fixed and can suddenly drop to 0 if higher-priority work arrives. For example, the browser's estimate can change in the middle of an idle callback if the user clicks. Developers should not assume the value always decreases linearly like a countdown timer.

Syntax

timeRemaining()

Parameters

None.

Return value

A {{domxref("DOMHighResTimeStamp")}} value (which is a floating-point number) representing the number of milliseconds the user agent estimates are left in the current idle period. The value is ideally accurate to within about 5 microseconds.

If the {{domxref("IdleDeadline")}} object's {{domxref("IdleDeadline.didTimeout", "didTimeout")}} property is true, this method returns zero.

Examples

See our complete example in the article Cooperative Scheduling of Background Tasks API.

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}

See also