2013-06-15 10 views
5

Mi chiedo se esiste un modo per disabilitare un aggiornamento automatico della pagina quando una pagina perde lo stato attivo. Ce l'ho messa a punto per aggiornare quando si riceve lo di nuovo già utilizzando questo:disabilita l'aggiornamento della pagina in caso di mancanza di messa a fuoco

window.onblur= function() {window.onfocus= function() {location.reload(true)}}; 

che ho trovato da here. Inizialmente avevo l'aggiornamento automatico della pagina usando:

<meta http-equiv="refresh" content="60"/> 

Quale ricarica la pagina ogni 60 secondi indipendentemente dallo stato.

Desidero fare in modo che la pagina abbia l'aggiornamento automatico solo quando è a fuoco con l'aggiornamento iniziale quando la pagina viene nuovamente messa a fuoco. Dopo il guadagno di messa a fuoco, dovrebbe rinfrescarsi nell'intervallo di tempo fino alla perdita di messa a fuoco.

Grazie

+0

Si potrebbe provare a utilizzare Page Visibility API - http://www.w3.org/TR/page-visibility/ – gearsdigital

risposta

5

Non si può ignorare questo tipo di aggiornamento, probabilmente si dovrebbe utilizzare un timer JS per rinfrescare, qualcosa di simile (dopo aver rimosso il tag <meta http-equiv="refresh" content="60" />):

var hasFocus; 

window.onblur = function() { 
    hasFocus = false; 
} 

window.onfocus = function(){ 
    hasFocus = true; 
} 

setInterval(reload, 60*1000); 

function reload(){ 
    if(hasFocus){ 
     location.reload(true); 
    } 
} 
1

ho finito modificando il codice da Mostafa Torbjørn Berg per mantenere l'aggiornamento attivo e fare in modo che la pagina si aggiorni automaticamente ogni 60 secondi mentre la pagina è focalizzata.

var hasFocus= true; 
window.onblur = function() { 
    hasFocus = false; 
} 
window.onfocus = function(){ 
    location.reload(true); 
} 
setInterval(reload, 60*1000); 
function reload(){ 
    if(hasFocus){ 
     location.reload(true); 
    } 
} 
Problemi correlati