real-interval 解决setInterval休眠问题开源项目

我要开发同款
匿名用户2016年10月03日
114阅读
开发技术JavaScript
所属分类jQuery插件、jQuery定时器插件
授权协议MIT

作品详情

real-interval

如果你用setTimeout或setInterval实现过网页倒计时功能,你就会发现:

当电脑或者APP休眠了一段时间后,倒计时会出现问题:它比正确的时间慢了。

real-interval能解决这个问题。

当休眠的电脑被唤醒后,它会计算出正确的运行时间,你的回调函数可以据此显示正确的剩余时间,或者判断何时应该停止倒计时。

安装

你可以通过npm安装real-interval

npm install real-interval

OR通过脚本引入它:

<script src="./build/interval.js"></script>用法1

在经过指定个数的时间间隔后停止

var timer = new Interval(function(pass){    console.log(pass);    // stop after 24 hours    if(pass == 60*60*24){        this.stop();    };}, 1000);

打印结果:

123456...86400

这个例子中的 pass 是一个计数器,表示当前经过了多少个1000毫秒。

用法2

设定执行次数,自动停止

// automatic stop after 6 secondsvar timer = new Interval(function(pass){    console.log(pass);}, 1000, 6);

打印结果:

123456

这个例子中的定时器会在6秒后自动停止。

用法3

显示剩余时间

var timer = new Interval(function(pass, surplus){    console.log('stop after ' + surplus + ' seconds');}, 1000, 6);

打印结果:

stop after 5 secondsstop after 4 secondsstop after 3 secondsstop after 2 secondsstop after 1 secondsstop after 0 seconds

这个例子会显示距离停止还有多少秒。

用法4

立即执行

var timer = new Interval(function(pass, surplus){    console.log('stop after ' + surplus + ' seconds');}, 1000, 6, true);

打印结果:

stop after 6 secondsstop after 5 secondsstop after 4 secondsstop after 3 secondsstop after 2 secondsstop after 1 secondsstop after 0 seconds

这个例子与上个例子不同的地方在于,回调函数会立即被调用,而不是1秒之后。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论