Javascript 当用户离开窗口/选项卡时,如何停止发送数据?
我有一个计时器,可以计算花在页面上的时间。我正在使用 如果用户离开计算机或更改选项卡,计时器将停止(以便正确计算所花费的时间)。 这将每隔5秒向服务器发送持续时间,如下所示Javascript 当用户离开窗口/选项卡时,如何停止发送数据?,javascript,jquery,Javascript,Jquery,我有一个计时器,可以计算花在页面上的时间。我正在使用 如果用户离开计算机或更改选项卡,计时器将停止(以便正确计算所花费的时间)。 这将每隔5秒向服务器发送持续时间,如下所示 setInterval(function() { var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds(); },5000); 我的问题是,如果用户离开计算机或更改选项卡,我的脚本将继续ping服务器,使用相同的“TimePentonPa
setInterval(function() {
var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds();
},5000);
我的问题是,如果用户离开计算机或更改选项卡,我的脚本将继续ping服务器,使用相同的“TimePentonPage”进行更新,因为它在您不活动时停止
如果发生这种情况,我想停止向服务器发送数据
有什么可行的方法可以做到这一点?也许要比较两个不同的计时器?你可以试试
$(window).on("blur unload",function() {
TimeMe.stopTimer();
}
$(window).on("focus",function() {
if (TimeMe) TimeMe.startTimer();
}
在
if(TimeMe)TimeMe.startTimer();
var-anId;
文件.添加的事件列表器(“可视性更改”,功能(evt){
if(document.visibilityState=='hidden'){
清除间隔(anId);
}否则{
anId=setInterval(函数(){
控制台日志(“可见”);
var timePentonPage=TimeMe.getTimeOnCurrentPageInSeconds();
},5000);
}
});代码>考虑使用javascript事件来简单地清除间隔。其中一个应该适合你的需要。这可能会有帮助。
<script>
if (TimeMe) TimeMe.startTimer();
</script>