我正在努力使它与一个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