话不多说,直接上代码
html里
<span id="timer"></span>
JS里:因为JS存在一个第一次点击调用定时器时会50s之后才会执行要调用的方法,所以加个锁来解决就可以了
//心跳检测
var num = 50; //每隔50s刷新一次
var num1 = true; //判断是否是第一次点击 锁
var heartCheck = {
timeout: 1000,//倒计时的定时
timeoutObj: null,
reset: function(){
clearTimeout(this.timeoutObj); //清除定时器
return this;
},
chongzhi: function(){
num = 50;
clearTimeout(this.timeoutObj); //清除定时器
return this;
},
start: function(){
this.timeoutObj = setTimeout(function(){
var sec = document.getElementById("timer");
heartCheck.reset().start();
sec.innerHTML = num + "秒后刷新";
if(num1) { //如果是第一次点击 则加载并改变状态
getlnglat(cdeptid);//这里我调用了自己的方法,把这里换成自己的方法即可(第一次点击时加载方法)
num1 = false; //改变状态
}
num--;
if(num < 0){ //计时器 当小于0时加载并改变nums状态
heartCheck.chongzhi().start(); 当num小于0时,说明该执行刷新的方法了
num1 = false;
getlnglat(cdeptid);//这里我调用了自己的方法,把这里换成自己的方法即可
}
}, this.timeout);
}
}
调用:
heartCheck.reset().start(); //调用定时器
这个是我项目里的定时器,经测试可用,就不贴图片啦。