js延時操作setTimeout和setInterval
阿新 • • 發佈:2019-01-15
var 窗口 new 設置 ear timer 有一個 eth mage 1.setTimeout
說明:
有兩個參數,一個是將要執行的代碼字符串,還有一個是以毫秒為單位的時間間隔,當過了那個時間段之後就將執行那段代碼.且只執行一次
/*按鈕禁用10秒*/
setTimeout(disabledSubmitButton("bt01"), 1000*10);
function disabledSubmitButton(submitButtonName) {
$("#"+submitButtonName).removeAttr("disabled");//將按鈕可用
}
2.setInterval
說明:
有兩個參數,一個是將要執行的代碼字符串,還有一個是以毫秒為單位的時間間隔,當過了那個時間段之後就將執行那段代碼.會重復執行;可應用於倒計時.
// 每10獲取一次時間 setInterval("showTime()" , 1000*10 ); function showTime(){ // js獲取日期時間 var newDate = getDateTime(); alert("當前日期時間是:" + newDate); } // js獲取日期時間 function getDateTime(){ var dateObj = new Date(); //表示當前系統時間的Date對象 var year = dateObj.getFullYear(); //當前系統時間的完整年份值 var month = dateObj.getMonth()+1; //當前系統時間的月份值 var date = dateObj.getDate(); //當前系統時間的月份中的日 var day = dateObj.getDay(); //當前系統時間中的星期值 var weeks = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; var week = weeks[day]; //根據星期值,從數組中獲取對應的星期字符串 var hour = dateObj.getHours(); //當前系統時間的小時值 var minute = dateObj.getMinutes(); //當前系統時間的分鐘值 var second = dateObj.getSeconds(); //當前系統時間的秒鐘值 var timeValue = "" +((hour >= 12) ? (hour >= 18) ? "晚上" : "下午" : "上午" ); //當前時間屬於上午、晚上還是下午 return dateFilter(year)+"年"+dateFilter(month)+"月"+dateFilter(date)+"日 "+" "+dateFilter(hour)+":"+dateFilter(minute)+":"+dateFilter(second) + " " + week; }
效果:
3.清除
如果對計時函數不加以處理,那麽setInterval將會持續執行相同的代碼,一直到瀏覽器窗口關閉,或者用戶轉到了另外一個頁面為止.不過還是有辦法可以終止setTimeout和setInterval函數的執行.當setInterval調用執行完畢時,它將返回一個timer ID,將來便可以利用該值對計時器進行訪問,如果將該ID傳遞給clearInterval,便可以終止那段被調用的過程代碼的執行了,具體實現如下:
var obj01 = setTimeout(disabledSubmitButton("bt01"), 1000*10); <!-- 清除已設置的setTimeout對象 --> clearTimeout(obj01) var obj02 = setInterval("showTime()" , 1000*10 ); <!-- 清除已設置的setInterval對象 --> clearInterval(obj02);
js延時操作setTimeout和setInterval