概述
由于原生的settimeout
、setInterval
使用不慎,可能会造成全局污染,而且不太容易管理和维护,生命周期也不太容器追踪。所以以面向对象的风格封装定时器还是不错的一个方法,这样我们只要管理定时器这个管理的对象就可以了,代码也变的香港简洁和容易维护了。
使用方法介绍
创建一个定时器对象
var timer = new Timer(function() { alert('This message was sent by a timer.'); }); timer.set({ time : 5000, autostart : true });
初始化操作
timer.set(options);
启动定时器,让其继续执行.
timer.play(reset);
该函数的作用是暂停定时器
timer.pause();
停止定时器.所有参数恢复到初始化状态.
timer.stop();
提供一个开关,用来控制定时器的执行和停止
timer.toggle(reset);
只执行一次定时器
timer.once(time);
判断定时器的当前状态,即是否被激活
timer.isActive
暂停后,到执行下一个定时器所剩下的时间.
timer.remaining // Remaining time when paused
源码地址:
基于jQuery的:https://github.com/jchavannes/jquery-timer
无框架依赖的:https://github.com/hehongwei44/Timer (基于上面的源码进行修改,去掉了依赖,代码进行了优化,如果喜欢的话,就star一下吧)