La Page Visibility API è un'API particolare supportata oramai da tutti i browser tranne Safari e Opera, che ci permette di sapere quando la pagina è visualizzata dall'utente. Questa API è piuttosto utile, dato che permette ad esempio alle applicazioni con una forte componente grafica di risparmiare tempo computazionale fin quando l'utente non visualizza la webapp sul browser.
Per ovviare alla difficoltà di utilizzo della Page Visibility API che è comunque definita a basso livello, ci viene incontro Visibility.js, un comodissimo wrapper grazie al quale possiamo comodamente definire funzioni eseguibili solamente quando la pagina è visibile.
L'utilizzo è molto semplice:
var minute = 60 * 1000;
Visibility.every(minute, 5 * minute, function(){
// Esegui il corpo della funzione ogni minuto per 5 minuti quando la pagina è visibile
});
àˆ anche possibile avere accesso agli eventi dell'API:
Visibility.onVisible(function(){
// Corpo eseguito quando la pagina diventa visibile
});
Visibility.change(function(e, state){
// e è l'evento originale
// state è il nome dello stato di visibilità : [visible, hidden, prerender]
});
Il codice sorgente di Visibility.js è disponibile su GitHub.