From 95141ac5376a72d5900bbfaec6f26628a6240600 Mon Sep 17 00:00:00 2001 From: Guillermo Rauch Date: Thu, 16 Feb 2017 02:16:41 -0300 Subject: [PATCH] debounce session data events based on request animation frame --- lib/index.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/index.js b/lib/index.js index ca00cb58..24c87e6b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -44,8 +44,22 @@ rpc.on('session add', data => { store_.dispatch(sessionActions.addSession(data)); }); +let req, objects = {} rpc.on('session data', ({uid, data}) => { - store_.dispatch(sessionActions.addSessionData(uid, data)); + if (objects[uid] === undefined) { + objects[uid] = data; + } else { + objects[uid] += data; + } + if (!req) { + req = requestAnimationFrame(function () { + for (var i in objects) { + store_.dispatch(sessionActions.addSessionData(i, objects[i])); + } + objects = {}; + req = null; + }) + } }); rpc.on('session data send', ({uid, data}) => {