Javascript倒计时越来越慢
Javascript countdown is going slow?
我正在尝试进行以毫秒为单位的倒计时;然而,倒计时实际上要比7秒长得多。知道为什么吗?
function countDown(time){
var i = 0;
var interval = setInterval(function(){
i++;
if(i > time){
clearInterval(interval);
}else{
//mining
$('#mining_time').text($('#mining_time').text()-1);
}
}, 1);
}
我可以确认传递给函数的可变时间正确设置为7000。
要获得最准确的倒计时,请使用setTimeout()
。
setTimeout(fn, 7e3);
如果您绝对必须让它尽可能接近7秒,请使用紧密轮询(requestAnimationFrame()
)并查看开始时间和当前轮询时间之间的差异。
var startTime = Date.now();
requestAnimationFrame(function me() {
var deltaTime = Date.now() - startTime;
if (deltaTime >= 7e3) {
fn();
} else {
requestAnimationFrame(me);
}
});
根据需要填充多边形。
- 在7秒后运行的最精确方法是使用
setTimeout
和7000
ms间隔 - a。没有浏览器可以保证以1ms的分辨率运行一段时间。最好的情况是7-10ms
- b。js中只有一个线程,所以任务是排队的。这意味着只有在当前运行完成后,才会安排下一次运行
一些有用的阅读:http://ejohn.org/blog/how-javascript-timers-work/
任何浏览器都不会将1作为setInterval的参数。在我的脑海中,最小值是4毫秒。
要获得准确的结果,请获取当前时间,添加7000毫秒,然后轮询(使用setInterval或setTimeout),直到达到该新时间。
快速的Web搜索返回了这篇提供示例的文章。
[更新]此MDN页面上提到了4ms的值。
相关文章:
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 结束后Javascript倒计时计时器重定向
- 停止javascript倒计时
- CSS动画背景图像的过渡越来越暗
- 每小时倒计时一次,但以30分钟为单位
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 递归倒计时计时器
- 如何在拍卖广告中添加倒计时
- 制作一个按钮倒计时计时器,该计时器将在5分钟后永久禁用,即使在页面刷新时也应保持禁用状态
- 我需要JS/jQuery中的倒计时计时器
- 我的时间倒计时脚本在谷歌浏览器中工作正常,但在其他浏览器中打开时它显示为南楠
- Javascript onclick需要点击两次,然后会创建越来越多的服务器请求
- 双倒计时定时器
- JavaScript-在倒计时期间禁用点击功能
- Javascript倒计时越来越慢