backburner.js

A rewrite of the Ember.js run loop as a generic microlibrary

Github星跟蹤圖

backburner.js Build Status

A rewrite of the Ember.js run loop as a generic microlibrary.

TL;DR

A priority queue that will efficiently batch, order, reorder and process work; done via scheduling work on specific queues.

Downloads

API

Constructor, Constructor, Description, ---, ---, new Backburner(), instantiate a Backburner instance with an array of queue names, ### Instance methods, Method, Description, ---, ---, Backburner#run, execute the passed function and flush any deferred actions, Backburner#defer, defer the passed function to run inside the specified queue, Backburner#deferOnce, defer the passed function to run inside the specified queue, only execute it once, Backburner#setTimeout, execute the passed function in a specified amount of time, Backburner#debounce, execute the passed function in a specified amount of time, reset timer upon additional calls, Backburner#throttle, rate-limit the passed function for a specified amount of time, Backburner#cancel, cancel a deferOnce, setTimeout, debounce or throttle, Backburner#on, Add an event callback. Supports the following events: begin - Fires whenever the runloop begins. Callbacks are passed the current instance and the previous instance.end - Fires whenever the runloop ends. Callbacks are passed the current instance and the next instance., Backburner#off, Removes an event callback, Backburner#join, Join the passed method with an existing queue and execute immediately, if there isn't one use Backburner#run, Backburner#getDebugInfo, Returns debug information for counters, timers and queues, which includes surfacing the stack trace information for the respective calls, #### Alias, Alias, Description, ---, ---, Backburner#schedule, same as defer, Backburner#scheduleOnce, same as deferOnce, Backburner#later, same as setTimeout, ## Example usage

The following code will only cause a single DOM manipulation:

<!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>

主要指標

概覽
名稱與所有者BackburnerJS/backburner.js
主編程語言TypeScript
編程語言JavaScript (語言數: 3)
平台
許可證MIT License
所有者活动
創建於2013-04-10 15:50:01
推送於2023-11-17 20:13:23
最后一次提交2023-11-17 12:13:20
發布數32
最新版本名稱v2.8.0 (發布於 2023-11-17 12:13:21)
第一版名稱v0.2.0 (發布於 )
用户参与
星數391
關注者數19
派生數80
提交數768
已啟用問題?
問題數77
打開的問題數10
拉請求數256
打開的拉請求數23
關閉的拉請求數53
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?