天天看點

一個有倒計時功能并且可以定時重新整理的定時器

話不多說,直接上代碼

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(); //調用定時器
           

這個是我項目裡的定時器,經測試可用,就不貼圖檔啦。

繼續閱讀