@cryptotaxi247 / netdata-1 / commits / 18f9eacf5

abort all chart updates before saving the snapshot

Costa Tsaousis (ktsaou) committed Nov 18, 2017 at 05:21 UTC 18f9eacf52b40d08f3d0eba448102ed6fa17f988
2 files changed +30 -22
web/dashboard.js
+26 -22
@@ -608,45 +608,49 @@ var NETDATA = window.NETDATA || {};
608 NETDATA.onresizeCallback();
609 };
610
611 + NETDATA.abort_all_refreshes = function() {
612 + var targets = NETDATA.options.targets;
613 + var len = targets.length;
614 +
615 + while (len--) {
616 + if (targets[len].fetching_data === true) {
617 + if (typeof targets[len].xhr !== 'undefined') {
618 + targets[len].xhr.abort();
619 + targets[len].running = false;
620 + targets[len].fetching_data = false;
621 + }
622 + }
623 + }
624 + };
625 +
626 NETDATA.onscroll_updater_timeout_id = 0;
627 NETDATA.onscroll_updater_count = 0;
628 NETDATA.onscroll_updater_max_duration = 0;
629 NETDATA.onscroll_updater_above_threshold_count = 0;
630 + NETDATA.onscroll_updater_enabled = true;
631 NETDATA.onscroll_updater = function() {
632 + if(NETDATA.onscroll_updater_enabled === false)
633 + return;
634 +
635 NETDATA.globalSelectionSync.stop();
636
637 NETDATA.onscroll_updater_count++;
638 var start = Date.now();
639
621 - var targets = NETDATA.options.targets;
622 - var len = targets.length;
640
641 // when the user scrolls he sees that we have
642 // hidden all the not-visible charts
643 // using this little function we try to switch
644 // the charts back to visible quickly
645
646 + if(NETDATA.options.abort_ajax_on_scroll === true)
647 + NETDATA.abort_all_refreshes();
648
630 - if(NETDATA.options.abort_ajax_on_scroll === true) {
631 - // we have to cancel pending requests too
632 -
633 - while (len--) {
634 - if (targets[len].fetching_data === true) {
635 - if (typeof targets[len].xhr !== 'undefined') {
636 - targets[len].xhr.abort();
637 - targets[len].running = false;
638 - targets[len].fetching_data = false;
639 - }
640 - targets[len].isVisible();
641 - }
642 - }
643 - }
644 - else {
645 - // just find which charts are visible
646 -
647 - while (len--)
648 - targets[len].isVisible();
649 - }
649 + // find which charts are visible
650 + var targets = NETDATA.options.targets;
651 + var len = targets.length;
652 + while (len--)
653 + targets[len].isVisible();
654
655 var end = Date.now();
656 // console.log('scroll No ' + NETDATA.onscroll_updater_count + ' calculation took ' + (end - start).toString() + ' ms');
web/index.html
+4
@@ -3412,6 +3412,7 @@
3412
3413 NETDATA.options.force_data_points = 0;
3414 NETDATA.options.fake_chart_rendering = false;
3415 + NETDATA.onscroll_updater_enabled = true;
3416 NETDATA.onresize();
3417 NETDATA.unpause();
3418 }
@@ -3420,6 +3421,9 @@
3421 NETDATA.globalSelectionSync.stop();
3422 NETDATA.options.force_data_points = saveData.data_points;
3423 NETDATA.options.fake_chart_rendering = true;
3424 + NETDATA.onscroll_updater_enabled = false;
3425 + NETDATA.abort_all_refreshes();
3426 +
3427 var size = 0;
3428
3429 function update_chart(idx) {