From ba1045aacd8a222e291cec429622e292255cd3d1 Mon Sep 17 00:00:00 2001 From: Martin/Geno Date: Tue, 17 Jul 2018 23:54:11 +0200 Subject: [PATCH] render bouncer --- webroot/js/gui.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/webroot/js/gui.js b/webroot/js/gui.js index 05ea51d..f6079b8 100644 --- a/webroot/js/gui.js +++ b/webroot/js/gui.js @@ -6,15 +6,17 @@ import {singelton as notify} from './element/notify'; const router = new Navigo(null, true, '#'), elMain = domlib.newEl('main'), - elMenu = new MenuView(); + elMenu = new MenuView(), + GUI_RENDER_DEBOUNCER_TIME = 100; export {router}; let init = false, currentView = new View(); -export function render () { +function renderView () { if (!document.body) { + window.setTimeout(renderView, GUI_RENDER_DEBOUNCER_TIME); return; } @@ -26,7 +28,6 @@ export function render () { init = true; } - currentView.render(); notify.render(); @@ -35,6 +36,21 @@ export function render () { router.resolve(); } +export function render () { + let timeout = false; + + function reset () { + timeout = null; + } + if (timeout) { + console('skip rendering to often'); + window.clearTimeout(timeout); + }else{ + renderView(); + } + timeout = window.setTimeout(reset, GUI_RENDER_DEBOUNCER_TIME); +} + export function setView (toView) { currentView.unbind(); currentView = toView;