Javascript停止标签交换
Javascript stops on tab swap
我已经写了一个jQuery插件,一切都很好,除了脚本暂停当你切换到不同的选项卡。脚本的主体是一个延迟1ms的setInterval()
。
var count = setInterval( function() {
if (iMil <= 0) {
if (iS == 0) {
if (iMin == 0) {
if (iH == 0) {
// DONE
milliseconds.text(0);
clearInterval(count);
} else {
iH--;
iMin = 59;
iS = 59;
iMil = 999;
}
} else {
iMin--;
iS = 59;
iMil == 999;
}
} else {
iS--;
iMil = 999;
}
} else {
iMil-=4; // Make up for ms lost doing calculations
}
hours.text(iH);
minutes.text(iMin);
seconds.text(iS);
if (iMil >= 10 && iMil < 100) {
milliseconds.text('0'+iMil);
} else if (iMil >= 0 && iMil < 10) {
milliseconds.text('00'+iMil);
} else if (iMil == -1) {
milliseconds.text('000');
} else {
milliseconds.text(iMil);
}
}, 1 );
是否有一种方法来运行这个,不管你在哪个选项卡上?
出于电源管理的原因,当页面不在前台时,许多浏览器会减慢速度或停止间隔计时器。
正如我在之前对您使用相同代码的另一个问题的回答中所说的,您不应该维护自己的时间计数,因为setInterval()
不是一个精确的计时器(正如您所发现的)。
间隔计时器将是一个显示更新计时器,而不是一个跟踪确切时间量的计时器。
如果你想显示运行时间,你可以这样做:
function startTimer() {
var startTime = new Date().getTime();
var timer = setInterval(function() {
var elapsedMilliseconds = new Date().getTime() - startTime;
// now do whatever you want with the elapsedMilliseconds
}, 1);
}
相关文章:
- 在<页眉>标签
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- iframe正在添加标签,需要删除它们
- 如何自动调整标签的高度以适应内容
- 如何使用offer/answer交换来自两个对等连接的流
- Jquery标签插件粘贴问题
- Twitter引导程序Typeahead-Id&标签
- Highcharts-如何在自定义格式化程序中获得默认的y轴标签格式化程序
- Morris.js折线图x轴标签在调整大小后消失
- JavaScript goto 标签如何使用内部循环
- 显示某个用户ID的某个标签的30张Instagram图片
- 标签客户端的设置值
- 谷歌图表显示所有标签
- 如何在图片和边缘之间居中设置标签
- 使用angularjs交换图像标签中的ng-src属性
- 如何使用 javascript 交换字符串中的特定标签
- 如何获取堆栈交换 API 使用的所有标签的 JSON 响应
- Javascript停止标签交换
- 在两个HTML文件之间交换主体标签
- 交换文本标签以选择值