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) {