我有一個計時器,用於統計頁面上的時間。我正在使用https://github.com/jasonzissman/TimeMe.js如何在用戶離開窗口/標籤時停止發送數據?
如果用戶離開計算機或更改選項卡,計時器將停止(以便正確計算所花費的時間)。 這樣,如下所示,每5秒向服務器發送持續時間。
setInterval(function() {
var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds();
},5000);
我的問題是,如果用戶離開電腦,或更改標籤,我的腳本將繼續ping服務器,具有相同的「timeSpentOnPage」更新它,因爲它的時候,你是不活躍停止。
如果發生這種情況,我想停止向服務器發送數據。
什麼是可能的方式來做到這一點?也許比較2個不同的計時器?
考慮使用JavaScript事件簡單地clearInterval。 https://developer.mozilla.org/en-US/docs/Web/Events其中之一應該適合您的需求 – fubbe
這可能有所幫助。 http://stackoverflow.com/questions/1760250/how-to-tell-if-browser-tab-is-active/1760268#1760268 –