2010-01-14 162 views
1

我有一個網頁,使用jQuery和javaScript,我想知道是否以及何時讓網頁進入睡眠狀態。由於許多任務都是後臺進程,如果頁面上沒有任何事情發生,我需要讓它們進入睡眠狀態。即用戶正在另一個屏幕上工作或不在他的PC上完全停止當您的網頁可以進入睡眠狀態

+0

另請參閱:http://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-is-not-currently-active。 – 2010-01-14 15:34:04

回答

2

最簡單的方法是設置一個計時器,該計時器根據用戶與頁面的交互情況在幾個事件上重置。一個非常簡單的例子是:

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(); 
} 

在對數據的請求,可以檢查awake變量的狀態,如果是假的,返回該功能的。當用戶再次與該頁面交互時,必要的數據將被刷新,並且變量awake再次設置爲真。

0

也許超時功能可以工作。它將不得不定期檢查是否發生了您關心的事件,並決定是否讓該頁面「睡眠」。

相關問題