setInterval: setInterval 方法可按照指定的週期(以毫秒計)來調用函數或計算表達式,中止該方法可以使用 clearInterval 方法javascript
setTimeout :setTimeout 方法用於在指定的毫秒數後調用函數或計算表達式。中止該方法可以使用 clearTimeout 方法。java
區別:setTimeout() 只執行代碼塊一次。若是要屢次調用,請使用 setInterval() 或者讓代碼塊自身再次調用 setTimeout()。dom
//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: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); }