问题来源:
http://bbs.fanruan.com/thread-104129-1-1.html
解析:在该帖中,撸主选用的方案,一定程度上解决了我们定时的时候需要的暂停问题,但同时也暴露了另外一个问题就是,恢复和资源消耗。
帖子里面的方案暂停时定时器本身依然是在执行的。而且在暂停后无法按照原序进行恢复,打个比方,一次定时是5秒,在执行后2秒按暂停,这个时候定时器依然是执行消耗资源的。当过一段时间点击执行时,本来应该是3秒后继续执行,但是实际却是要看脸了~执行时间将在0-5秒之间波动~
解决方案:我们应该定义一个全新的定时器,可以暂停,暂停时定时器是真的暂停不再消耗资源,继续执行的时候,可以按原来的时序进行恢复。
代码:
MidasTimer.js
(1.2 KB, 下载次数: 19, 售价: 40 个F豆)
进度条版本:
MidasTimer.js
(1.48 KB, 下载次数: 8, 售价: 40 个F豆)
测试cpt
定时器测试.cpt
(3.28 KB, 下载次数: 27)
使用方法:在需要使用定时器的模板或者表单里面通过引入该JS文件即可。
调用方法:根据自己的需要在具体位置选择具体方法调用即可
- //创建定时器 三个参数,第一个是要执行的函数,第二个是定时长,第三个是创建后是否立即执行
- test = Timer(function(){console.info(new Date());},2000,true);
- //(继续)执行定时器
- test.start();
- //暂停定时器,会返回剩余的执行时间
- test.stop();
- //销毁定时器
- test.clear();
复制代码
编辑于 2018-3-15 16:03
|