From 97c118bf994d74ced6344439c79c4ce7546b94d1 Mon Sep 17 00:00:00 2001 From: sparks-alec Date: Sat, 2 Nov 2024 22:15:59 -0400 Subject: [PATCH] debounce .draw() --- src/view.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/view.js b/src/view.js index d04d993..1842d6a 100644 --- a/src/view.js +++ b/src/view.js @@ -100,13 +100,21 @@ module.exports.draw = function draw(device) { const d = device; const $deviceDrawArea = document.getElementById(`device-${d.id}-draw-area`); - if ($deviceDrawArea) { - const scriptEl = $deviceDrawArea.contentWindow.document.createRange().createContextualFragment(generateBodyHTML(d)); - $deviceDrawArea.contentWindow.document.body.replaceChildren(scriptEl); - } else { - drawDeviceFrame(d.id); + if (device.drawTimeout !== undefined) { + clearTimeout(device.drawTimeout); } - d.drawn = true; + + d.drawTimeout = setTimeout(() => { + if ($deviceDrawArea) { + const scriptEl = $deviceDrawArea.contentWindow.document + .createRange() + .createContextualFragment(generateBodyHTML(d)); + $deviceDrawArea.contentWindow.document.body.replaceChildren(scriptEl); + } else { + drawDeviceFrame(d.id); + } + d.drawn = true; + }, 200); }; module.exports.update = function update(device, type, data) {