JavaScript中 setInterval和setTimeout事件的方法 和區別

setInterval: setInterval 方法可按照指定的週期(以毫秒計)來調用函數或計算表達式,中止該方法可以使用 clearInterval 方法javascript

setTimeout :setTimeout 方法用於在指定的毫秒數後調用函數或計算表達式。中止該方法可以使用 clearTimeout 方法。java

區別:setTimeout() 只執行代碼塊一次。若是要屢次調用,請使用 setInterval() 或者讓代碼塊自身再次調用 setTimeout()。dom

setTimeout調用方式:

//setTime()內部再次調用setTimeout,若是內部不用setTimeout調用setTime()方法,setTime()只會執行一次。
var timeId ;
var countdown = 60;
var dom = $('#getCodeBtn');
function setTime() {
	if (countdown == 0) {
		$(dom).attr("disabled", false);
		$(dom).text("獲取驗證碼");
	} else {
		$(dom).attr("disabled", true);
		$(dom).text("從新發送(" + countdown + ")");
	}
	if(countdown == 0){
		clearTimeout(timeId);
		countdown = 3;
	}else{
		countdown--;
		timeId = setTimeout(function(){
			setTime();
		},1000);			
	}	
}
		
function getRegCode() {
	setTime();
}

 

setInterval調用方式

//setInterval:setTime()函數內部無需再次調用,setInterval會每隔1000毫秒(1秒)執行一次setTime()函數
var timeId ;
var countdown = 60;
var dom = $('#getCodeBtn');
function setTime() {
	if (countdown == 0) {
		$(dom).attr("disabled", false);
		$(dom).text("獲取驗證碼");
		clearTimeout(timeId);
		countdown = 60;
	} else {
		$(dom).attr("disabled", true);
		$(dom).text("從新發送(" + countdown + ")");
		countdown--;
	}	
}
	
function getRegCode() { 
	timeId = setInterval("setTime()", 1000);
}
相關文章
相關標籤/搜索