IdleDeadline - Web API 接口参考 编辑
IdleDeadline
interface 在 Window.requestIdleCallback()
被调用的时候做为一个IdleDeadline
interface类型的参数传递给requestIdleCallback方法的回调函数。它提供了一个方法, 可以让你判断用户代理(浏览器)还剩余多少闲置时间可以用来执行耗时任务timeRemaining()
,didTimeout
, didTimeout属性用来判断当前的回调函数是否被执行因为回调函数存在过期时间(requestIdleCallback的第二个参数用来指定执行超时时间,即回调函数在规定的时间内是否被执行,如果没有执行didTimeout属性将为ture,如果任务是急需完成的此时应该忽略剩余时间逻辑上强制执行回调函数)。
学习更多的request callbacks工作原理请参考Collaborative Scheduling of Background Tasks.
Properties
IdleDeadline.didTimeout
只读- 一个Boolean类型当它的值为true的时候说明callback正在被执行(并且上一次执行回调函数执行的时候由于时间超时回调函数得不到执行),因为在执行requestIdleCallback回调的时候指定了超时时间并且时间已经超时。
Methods
IdleDeadline.timeRemaining()
- 返回一个时间
DOMHighResTimeStamp
, 并且是浮点类型的数值,它用来表示当前闲置周期的预估剩余毫秒数。如果idle period已经结束,则它的值是0。你的回调函数(传给requestIdleCallback的函数)可以重复的访问这个属性用来判断当前线程的闲置时间是否可以在结束前执行更多的任务。
Example
实例complete example (在 Cooperative Scheduling of Background Tasks API.文章内)
Specifications
Specification | Status | Comment |
---|---|---|
Cooperative Scheduling of Background Tasks | Proposed Recommendation |
Browser compatibility
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 47 | 未实现 | 53 (53)[1] | 未实现 | 34 | 未实现 |
Feature | Android | Chrome | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | 53 | 55 | 53.0 (53)[1] | ? | 未实现 | 37 | 未实现 |
[1] Idle callback功能在Firefox 53版本中添加,但是默认处于未启用状态. 通过设置dom.requestIdleCallback.enabled
属性为true 来启用该功能。Idle callback功能在Firefox 55版本中默认启用。
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论