Javascript 用户离开选项卡时暂停的setInterval()?
javascript中是否有类似setInterval()的方法,在用户离开选项卡时停止,在用户再次进入选项卡时恢复?您可以创建自己的API,使用来检测选项卡何时可见或隐藏,并在引擎盖下调用本机Javascript 用户离开选项卡时暂停的setInterval()?,javascript,Javascript,javascript中是否有类似setInterval()的方法,在用户离开选项卡时停止,在用户再次进入选项卡时恢复?您可以创建自己的API,使用来检测选项卡何时可见或隐藏,并在引擎盖下调用本机setInterval和clearInterval var mySetInterval, myClearInterval; (function() { var data = Object.create(null), id = 0; mySetInterval = function my
setInterval
和clearInterval
var mySetInterval, myClearInterval;
(function() {
var data = Object.create(null),
id = 0;
mySetInterval = function mySetInterval(func, time) {
data[id] = {
nativeID: setInterval(func, time),
func: func,
time: time
};
return id++;
};
myClearInterval = function myClearInterval(id) {
if(data[id]) {
clearInterval(data[id].nativeID);
delete data[id];
}
};
document.addEventListener('visibilitychange', function() {
if(document.visibilityState == 'visible')
for(var id in data)
data[id].nativeID = setInterval(data[id].func, data[id].time);
else
for(var id in data)
clearInterval(data[id].nativeID);
});
})();
var mySetInterval,myClearInterval;
(功能(){
var data=Object.create(null),
id=0;
mySetInterval=函数mySetInterval(func,time){
数据[id]={
nativeID:setInterval(函数,时间),
func:func,
时间:时间
};
返回id++;
};
myClearInterval=函数myClearInterval(id){
if(数据[id]){
clearInterval(数据[id].nativeID);
删除数据[id];
}
};
document.addEventListener('visibilitychange',function(){
如果(document.visibilityState==“可见”)
for(数据中的变量id)
数据[id]。nativeID=setInterval(数据[id]。func,数据[id]。时间);
其他的
for(数据中的变量id)
clearInterval(数据[id].nativeID);
});
})();
var log=document.getElementById('log'),
定时器;
document.getElementById('start')。onclick=function(){
var num=0;
myClearInterval(计时器);
计时器=mySetInterval(函数(){
log.innerHTML=num++;
},1e3);
};代码>
谢谢你的提问,大卫,但我认为重复的问题会很好地满足你的需要@Bergi另一个问题是,当选项卡未激活时,浏览器如何处理本机setInterval
。这个问题是关于模拟setInterval
,当选项卡变为非活动状态时强制暂停。它们不是重复的。