diff options
Diffstat (limited to 'lib/dombatch.js')
-rw-r--r-- | lib/dombatch.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/dombatch.js b/lib/dombatch.js new file mode 100644 index 0000000..190bb9c --- /dev/null +++ b/lib/dombatch.js @@ -0,0 +1,29 @@ + +var domBatch = {}; +var reads = []; +var writes = []; +var batch; + + +function call(fns) { + var fn; + while (fn = fns.shift()) fn(); +} + +domBatch.read = function(fn) { + batch = batch || setBatch(); + reads.push(fn); +}; + +domBatch.write = function(fn) { + batch = batch || setBatch(); + writes.push(fn); +}; + +function setBatch() { + return setTimeout(function() { + call(reads); + call(writes); + batch = null; + }, 0); +}
\ No newline at end of file |