diff --git a/public/app/features/dashboard/time_srv.ts b/public/app/features/dashboard/time_srv.ts index 38577982953..7891232d53b 100644 --- a/public/app/features/dashboard/time_srv.ts +++ b/public/app/features/dashboard/time_srv.ts @@ -15,6 +15,7 @@ class TimeSrv { oldRefresh: boolean; dashboard: any; timeAtLoad: any; + private autoRefreshBlocked: boolean; /** @ngInject **/ constructor(private $rootScope, private $timeout, private $location, private timer, private contextSrv) { @@ -23,6 +24,14 @@ class TimeSrv { $rootScope.$on('zoom-out', this.zoomOut.bind(this)); $rootScope.$on('$routeUpdate', this.routeUpdated.bind(this)); + + document.addEventListener('visibilitychange', () => { + if (this.autoRefreshBlocked && document.visibilityState === 'visible') { + this.autoRefreshBlocked = false; + + this.refreshDashboard(); + } + }); } init(dashboard) { @@ -137,6 +146,8 @@ class TimeSrv { this.startNextRefreshTimer(afterMs); if (this.contextSrv.isGrafanaVisible()) { this.refreshDashboard(); + } else { + this.autoRefreshBlocked = true; } }, afterMs)); }