2010-01-14 9 views
1

J'ai une page Web, en utilisant jQuery et javaScript, et je voudrais savoir si et quand mettre la page pour dormir. Comme un certain nombre de tâches sont des processus d'arrière-plan, je dois les mettre en veille si rien ne se passe sur la page. c'est-à-dire que l'utilisateur travaille sur un autre écran ou pas sur son PC à plein régimeLorsque votre page Web peut aller dormir

+0

Voir aussi: http://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-is-not-currently-active. –

Répondre

2

La méthode la plus simple consiste à définir une temporisation qui est réinitialisée sur plusieurs événements en fonction de l'interaction de l'utilisateur avec la page. Un exemple très basique serait:

var timeout;  
var awake = true; 
function resetTimer() 
{ 
    awake = true; 
    window.clearTimeout(timeout); 
    timeout = window.setTimeout(function() 
    { 
     awake = false; 
    }, 36000); // Set the timer for 5 minutes 
} 
document.documentElement.onfocus = document.documentElement.onmouseover = function() 
{ 
    if (!awake) 
     runRequests(); // Replace any stale data 
    resetTimer(); 
} 

Dans les demandes de données, vous vérifierait l'état de la variable awake et si elle est fausse, le retour de la fonction. Lorsque l'utilisateur interagit à nouveau avec la page, les données nécessaires sont actualisées et la variable awake est définie à true à nouveau.

0

Peut-être qu'une fonction de temporisation fonctionnerait. Il faudrait vérifier périodiquement si des événements qui vous intéressent se sont produits, et ainsi décider s'il faut mettre la page "pour dormir".

Questions connexes