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