diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-10-04 11:50:26 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-10-04 11:50:26 +0200 |
commit | 133a8c672c26609e9d56d4e184b779ca26971a8c (patch) | |
tree | f3aa4779a75279c95553cd68dd2a3bbe5e5b9dde /thirdparty/preact/src/render-queue.js | |
parent | 0697c987c5314232056a86fa128b518c866d2f12 (diff) | |
parent | 30b577138dda685f65a8529be1866afa6e321845 (diff) |
Merge commit '30b577138dda685f65a8529be1866afa6e321845' as 'thirdparty/preact'
Diffstat (limited to 'thirdparty/preact/src/render-queue.js')
-rw-r--r-- | thirdparty/preact/src/render-queue.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/thirdparty/preact/src/render-queue.js b/thirdparty/preact/src/render-queue.js new file mode 100644 index 000000000..ff603611b --- /dev/null +++ b/thirdparty/preact/src/render-queue.js @@ -0,0 +1,23 @@ +import options from './options'; +import { defer } from './util'; +import { renderComponent } from './vdom/component'; + +/** Managed queue of dirty components to be re-rendered */ + +// items/itemsOffline swap on each rerender() call (just a simple pool technique) +let items = []; + +export function enqueueRender(component) { + if (!component._dirty && (component._dirty = true) && items.push(component)==1) { + (options.debounceRendering || defer)(rerender); + } +} + + +export function rerender() { + let p, list = items; + items = []; + while ( (p = list.pop()) ) { + if (p._dirty) renderComponent(p); + } +} |