From ebadebe69af955ae023a496b2287068be13eea43 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Thu, 14 Dec 2017 07:57:55 +0000 Subject: [PATCH] borken worker --- share/public/javascripts/worker.js | 12 ++++ share/views/ajax/device/netmap.tt | 88 ++++++++++++++++++++---------- share/views/layouts/main.tt | 2 +- 3 files changed, 71 insertions(+), 31 deletions(-) create mode 100644 share/public/javascripts/worker.js diff --git a/share/public/javascripts/worker.js b/share/public/javascripts/worker.js new file mode 100644 index 00000000..1b6e8e77 --- /dev/null +++ b/share/public/javascripts/worker.js @@ -0,0 +1,12 @@ +importScripts( 'http://localhost:5000/javascripts/d3-3.5.6.js' ); + +onmessage = function(event) { + var force = event.data.force; + + for (var i = 0, n = Math.ceil(Math.log(0.001) / Math.log(1 - (1 - Math.pow(0.001, 1 / 300)))); i < n; ++i) { + postMessage({type: "tick", progress: i / n}); + force.tick(); + } + + postMessage({type: "end", force: force}); +}; diff --git a/share/views/ajax/device/netmap.tt b/share/views/ajax/device/netmap.tt index dc8deb6e..18b20d57 100644 --- a/share/views/ajax/device/netmap.tt +++ b/share/views/ajax/device/netmap.tt @@ -3,43 +3,71 @@ // custom resize function as there is no event to fire and we need // to react to the sidebar. $.getJSON('[% uri_for('/ajax/data/device/netmap') %]', {q: '[% params.q %]'}, function(data) { + function resizeGraphContainer() { - setTimeout(function(){ - var graph = jQuery('#netmap_pane'); - netmap_pane.width( parseInt(graph.parent().css('width')) ).resume(); - netmap_pane.height( window.innerHeight - 100 ).resume(); - }, 500) + setTimeout(function(){ + var graph = jQuery('#netmap_pane'); + netmap_pane.width( parseInt(graph.parent().css('width')) ).resume(); + netmap_pane.height( window.innerHeight - 100 ).resume(); + }, 500) } jQuery(document).ready(function() { - window.netmap_pane = netGobrechtsD3Force('netmap_pane') - .debug(true) - .lassoMode(true) - .nodeEventToOpenLink('click') - .nodeLinkTarget('none') - .labelDistance(2) - .charge(-850) - .zoomMode(true) - .preventLabelOverlappingOnForceEnd(true) - .showLinkDirection(false) - .showSelfLinks(true) - .showLoadingIndicatorOnAjaxCall(true) - .minZoomFactor(0.1) - .maxZoomFactor(10); + window.netmap_pane = netGobrechtsD3Force() + .debug(true) + .lassoMode(true) + .nodeEventToOpenLink('click') + .nodeLinkTarget('none') + .labelDistance(2) + .charge(-850) + .zoomMode(true) + .preventLabelOverlappingOnForceEnd(true) + .showLinkDirection(false) + .showSelfLinks(true) + .minZoomFactor(0.1) + .maxZoomFactor(10); - // center on our selected device - netmap_pane.inspect().main.force.on('end.centernode', function() { - var node = netmap_pane.nodeDataById( data['data']['centernode'] ); - netmap_pane.zoomSmooth(node.x, node.y, node.radius * 200); - netmap_pane.inspect().main.force.on('end.centernode', null); - }); + // stop force + netmap_pane.inspect().main.force.stop(); - jQuery('#nd_sidebar-toggle-img-in').on("click", resizeGraphContainer); - jQuery('#nd_sidebar-toggle-img-out').on("click", resizeGraphContainer); - jQuery(window).on("resize", resizeGraphContainer); + // center on our selected device + netmap_pane.inspect().main.force.on('end.centernode', function() { + var node = netmap_pane.nodeDataById( data['data']['centernode'] ); + netmap_pane.zoomSmooth(node.x, node.y, node.radius * 200); + netmap_pane.inspect().main.force.on('end.centernode', null); + }); + + // disable the default ticker + netmap_pane.inspect().main.force.on('tick', function() {} ); + + // now start, but without a ticker + netmap_pane.start(data); + + var worker = new Worker( 'http://localhost:5000/javascripts/worker.js' ); + console.log(netmap_pane.inspect().main.force); + worker.postMessage({force: netmap_pane.inspect().main.force}); + worker.onmessage = function(event) { + switch (event.data.type) { + case "tick": return ticked(event.data); + case "end": return ended(event.data); + } + }; + + function ticked(data) { + var progress = data.progress; + console.log(100 * progress + "%"); + //meter.style.width = 100 * progress + "%"; + } + + function ended(data) { + console.log( data ); + } + + // jQuery('#nd_sidebar-toggle-img-in').on("click", resizeGraphContainer); + // jQuery('#nd_sidebar-toggle-img-out').on("click", resizeGraphContainer); + // jQuery(window).on("resize", resizeGraphContainer); + // resizeGraphContainer(); - resizeGraphContainer(); - netmap_pane.start(data); }); }); diff --git a/share/views/layouts/main.tt b/share/views/layouts/main.tt index 0580772a..03808a18 100644 --- a/share/views/layouts/main.tt +++ b/share/views/layouts/main.tt @@ -20,7 +20,7 @@ - +