Просмотр исходного кода

Auto-refresh caused 2 refreshes (and hence mulitple queries) each time (at least in firefox) (Fixes #342)

Torkel Ödegaard 11 лет назад
Родитель
Сommit
d14a86069a
2 измененных файлов с 17 добавлено и 8 удалено
  1. 1 0
      CHANGELOG.md
  2. 16 8
      src/app/services/dashboard.js

+ 1 - 0
CHANGELOG.md

@@ -10,6 +10,7 @@ vNext
 - Series names and column name typeahead cache fix (Fixes #522)
 - Fixed influxdb issue with raw query that caused wrong value column detection (Fixes #504)
 - Default property that marks which datasource is default in config.js is now optional (Fixes #526)
+- Auto-refresh caused 2 refreshes (and hence mulitple queries) each time (at least in firefox) (Fixes #342)
 
 # 1.6.0 (2014-06-16)
 

+ 16 - 8
src/app/services/dashboard.js

@@ -445,20 +445,28 @@ function (angular, $, kbn, _, config, moment, Modernizr) {
       });
     };
 
+    this.start_scheduled_refresh = function (after_ms) {
+      this.cancel_scheduled_refresh();
+      self.refresh_timer = timer.register($timeout(function () {
+        self.start_scheduled_refresh(after_ms);
+        self.refresh();
+      }, after_ms));
+    };
+
+    this.cancel_scheduled_refresh = function () {
+      timer.cancel(self.refresh_timer);
+    };
+
     this.set_interval = function (interval) {
       self.current.refresh = interval;
-      if(interval) {
+      if (interval) {
         var _i = kbn.interval_to_ms(interval);
-        timer.cancel(self.refresh_timer);
-        self.refresh_timer = timer.register($timeout(function() {
-          self.set_interval(interval);
-          self.refresh();
-        },_i));
-        self.refresh();
+        this.start_scheduled_refresh(_i);
       } else {
-        timer.cancel(self.refresh_timer);
+        this.cancel_scheduled_refresh();
       }
     };
+
   });
 
 });