@@ -12,6 +12,8 @@ var App = (function() {
1212 var _lastPolledBlock = 0 ;
1313 var _pollBusy = false ;
1414 var _syncStartBlock = 0 ;
15+ var _syncVisible = false ;
16+ var _lastSyncPercent = - 1 ;
1517 var POLL_INTERVAL_MS = 3000 ;
1618
1719 /**
@@ -224,15 +226,22 @@ var App = (function() {
224226 if ( ! statusEl ) return ;
225227
226228 percent = Math . max ( 0 , Math . min ( 100 , Math . ceil ( percent || 0 ) ) ) ;
227- statusEl . textContent = 'Синхронизация с Миром... ' + percent + '%' ;
228229
229- if ( forceShow || percent < 100 ) {
230- statusEl . classList . add ( 'show' ) ;
231- } else {
232- setTimeout ( function ( ) {
233- statusEl . classList . remove ( 'show' ) ;
234- } , 1500 ) ;
230+ if ( ! forceShow && percent >= 100 ) {
231+ _syncVisible = false ;
232+ _lastSyncPercent = percent ;
233+ statusEl . classList . remove ( 'show' ) ;
234+ return ;
235+ }
236+
237+ if ( _syncVisible && _lastSyncPercent === percent ) {
238+ return ;
235239 }
240+
241+ statusEl . textContent = 'Синхронизация с Миром... ' + percent + '%' ;
242+ statusEl . classList . add ( 'show' ) ;
243+ _syncVisible = true ;
244+ _lastSyncPercent = percent ;
236245 }
237246
238247 /**
@@ -287,6 +296,11 @@ var App = (function() {
287296 return ;
288297 }
289298
299+ if ( ! ( _lastPolledBlock === 0 || ( headBlock - _lastPolledBlock ) >= 10 ) ) {
300+ _pollBusy = false ;
301+ return ;
302+ }
303+
290304 if ( _syncStartBlock === 0 || _lastPolledBlock < _syncStartBlock ) {
291305 _syncStartBlock = _lastPolledBlock ;
292306 }
0 commit comments