我正在開發一個「實時」web應用程序,它每10秒向服務器發送一次AJAX請求。顯然這是非常帶寬密集的,我想知道是否有任何解決方案。我如何檢測用戶是否與JavaScript「閒置」?
我的想法是檢查用戶是否在X秒內不移動鼠標。我怎樣才能做到這一點?
我正在開發一個「實時」web應用程序,它每10秒向服務器發送一次AJAX請求。顯然這是非常帶寬密集的,我想知道是否有任何解決方案。我如何檢測用戶是否與JavaScript「閒置」?
我的想法是檢查用戶是否在X秒內不移動鼠標。我怎樣才能做到這一點?
我認爲你正在尋找這樣的:https://github.com/jasonmcleod/jquery.idle
你可能要聽一些或全部的下列事件:
的mouseMove,鼠標點擊,mouseUp事件,鼠標按下,的keyDown,使用keyUp,按鍵
設置一個計時器在閒置一段時間(60秒?)後關閉,並且會關閉您的開關,請確保在您的ajax請求之前檢查您的開關。
理想情況下,用戶保持空閒時間越長,您的ajax呼叫的指數值就會越低。
$(window).bind('mousemove click mouseup mousedown keydown keypress keyup submit change mouseenter scroll resize dblclick', someEvent);
var active = true,
delay = 60000,
timer = null;
function someEvent(e)
{
active = true;
if (timer) clearTimeout(timer);
timer = setTimeout(function(t){
active = false;
}, delay);
}
真的很喜歡你的想法。謝謝! – 2010-11-04 23:36:36
這需要反彈。 – zzzzBov 2012-07-23 22:17:37
咦?你什麼意思? – 2012-07-24 02:17:05
正是我一直在尋找。簡單而有效。謝謝! – 2010-11-04 23:25:58
jquery.idle只監視mousemove事件。所以,如果你只是因爲他們沒有移動鼠標而將用戶標記爲閒置,那麼這對你來說應該很好。但是,您可能還想要觀察其他事件,例如鍵盤輸入。 – pinkfloydx33 2010-11-04 23:27:13
這是正確的,並且是我需要的。 – 2010-11-04 23:36:06