JS计时器
来源:互联网 发布:域名注册conmengcloud 编辑:程序博客网 时间:2024/05/14 03:20
最近项目中用到一个功能。发送短信后要有个倒计时提示。最开始直接写到代码里了,其它地方也要用,就想到了重构。
核心代码如下:
1.先接受对象实例化时传入的相应数据。
2.定义对象相应的方法。启动方法、结束方法、定时执行的方法(判断是否时间用完,用完调用结束方法。否则继续。)。
// 计时器开关。var timerSwitch = false;function Timer(fun1, times, delay) { this.fun1 = fun1; this.times = times; this.back = times; this.delay = delay;};Timer.prototype = { constructor: Timer, intervalId: -1, run: function () { if (timerSwitch)return; timerSwitch = true; this.fun1(this); this.intervalId = setInterval(this._fun, this.delay, this); }, close: function() { window.clearInterval(this.intervalId); this.times = this.back; this.fun1(undefined); timerSwitch = false; }, _fun: function(para) { para.times = para.times - 1; para.fun1(para); if (para.times == 0) {// 最开始我写的是times==1,但发现走到2s的时候1s没有。最后跟好基友分析来分析去才知道1s显示了,不过随即调用了close方法清空了数据。而且还少显示了一秒,然后定为0。看图 para.close(); return; } }};
调用的时候很简单。传入要执行的函数f1(处理显示),执行的时间,间隔时间1000毫秒。
实例化计时器对象,然后调用run方法。
$("#ttt").click(function() { $(this).button("disable"); var timer = new Timer(f1, 5, 1000); timer.run(); });f1种传入了计时器对象,里面有计时器当前时间,可以展示出来。通过对象是否存在来判断时间是否已结束。
function f1(timer) { var res = ""; if (!timer) { $("#ttt").button("enable"); $("#ttt").val("重新发送"); } else { res = timer.times+"s"; } $("#t1").html(res); }
DEMO版本在RunJS上,套了jquerymobile模板。
点击打开链接
还是有些简陋。感觉还有些地方写的有问题。后续慢慢改进。
0 0
- js计时器。
- js计时器
- js计时器
- JS计时器
- js计时器
- js计时器
- JS计时器
- js计时器
- JS 计时器
- js计时器
- JS 计时器
- JS计时器
- JS计时器
- js计时器
- js:计时器
- JS计时器
- JS计时器
- js计时器
- unity之NGUI2
- 有趣的递归题
- activiti designer源码的研究(一) 采用Axis2调用Webservice
- STM32F103学习笔记(五) 外部中断
- Q5.3 Print the next largest and smallest number。 二进制表示中1的个数统计
- JS计时器
- 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)
- 手机模块化
- Codeforces 385C 数学
- java中的各种数据类型在内存中存储的方式
- 【数值分析】拉格朗日插值与牛顿插值
- BZOJ 1560 JSOI2009 火星藏宝图 动态规划
- LeetCode[String]: Valid Palindrome
- 大学的点点滴滴