我正在努力使它與一個div刷新Ajax。代碼本身已經實現並且已經工作。我希望div每30秒刷新一次,但只能在活動選項卡上刷新。根據我的理解,無論選項卡是否在使用,setInterval都會刷新。編號喜歡結合使用setInterval的mouseenter(或其他類型的暗示用戶在網站上處於活動狀態的用戶交互),以便setInterval在不活動時不會被觸發。如何結合setInterval和mouseenter?
當前我有這個代碼,它在初始頁面加載時效果很好。在前30秒沒有刷新,也沒有刷新,直到鼠標在div上。然而,在最初的30秒後,它在每個小鼠中心刷新。
$(document).ready(function(){
$("#container").hide();
$("#loading").show();
$("div#refresh").load('example.com/load.php', function(){ $("#container").show(); $("#loading").hide(); });
function refresh() {
$("#refresh").mouseenter(function() {
// $("#container").hide();
$("#loading").show();
$("div#refresh").load('example.com/load.php', function(){ $("#container").show(); $("#loading").hide(); });
});
clearInterval(intervalID);
}
var intervalID = setInterval(refresh, 30000); // Will alert every 30 second.
// clearInterval(intervalID); // Will clear the timer.
});
您在代碼中有重複的代碼。 –
你真正想要的是[如何判斷瀏覽器/標籤是否處於活動狀態](http://stackoverflow.com/questions/1760250/how-to-tell-if-browser-tab-is-active)(標記爲重複) – Bergi
Bergi是對的。 – samura