燃烧器 
将 Ember.js 运行回路重写为通用微图书馆.
TL; DR 数据
优先排队,可以高效地进行分批,排序,重排和处理工作;通过特定排队的排行安排工作完成.
API 密码
构造器
| 构造器 | 说明 |
|---|---|
new Backburner() | 以队列名称排列的 Backbuner 实例 |
实例方法
| 方法 | 说明 |
|---|---|
Backburner#run | 执行传递的函数并冲出任何被推迟的动作 |
Backburner#defer | 推迟通过函数以在指定的队列内运行 |
Backburner#deferOnce | 将传递的函数延后到指定的队列内运行, 只执行一次 |
Backburner#setTimeout | 在指定时间内执行传递的函数 |
Backburner#debounce | 在指定时间内执行通过函数, 在额外调用时重设计时器 |
Backburner#throttle | 在指定时间内限制通过函数 |
Backburner#cancel | 取消一个 deferOnce, (中文(简体) ), setTimeout, (中文(简体) ), debounce 或者说 throttle |
Backburner#on | 添加事件召回 。 支持以下活动:
|
Backburner#off | 删除事件召回 |
Backburner#join | 以已有的队列加入通过的方法并立即执行, 如果没有一种使用 Backburner#run |
Backburner#getDebugInfo | 返回计数器、计时器和队列的调试信息,其中包括为相应呼叫提供堆栈微量信息 |
别名
| 别名 | 说明 |
|---|---|
Backburner#schedule | 与 defer |
Backburner#scheduleOnce | 与 deferOnce |
Backburner#later | 与 setTimeout |
示例用途
以下代码只会导致单一的 DOM 操作:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Backburner demo</title>
</head>
<body>
<div id="name"></div>
<script type="module">
import Backburner from './dist/es6/backburner.js'
var backburner = new Backburner(['render']),
person = {name: 'Erik'};
function updateName() {
document.querySelector('#name').innerHTML = person.name;
}
function setName(name) {
person.name = name;
backburner.deferOnce('render', updateName);
}
backburner.run(function() {
setName('Kris');
setName('Tom');
setName('Yehuda');
});
</script>
</body>
</html>
基准
这个 /bench 目录包括若干业绩基准.
跑进去 node数字 :
yarn ember build
node ./bench/index.js # (all benchmarks)
node ./bench/index.js ./bench/benches/some-file.js # (specific benchmark)
或在浏览器中运行,运行 yarn ember server访问 http://localhost:4200 在浏览器中。 注意开发者工具的打开/关闭会影响联署材料的性能.