setTimeout()和setInterval()方法的區別?


setTimeout(表達式,延時時間):

  在執行時,是在載入執行一次后延遲指定時間后,再執行一次表達式,需要函數觸發;被動觸發

setInterval(表達式,交互時間):

  它從載入后,立即進入計算狀態,每隔指定的時間就執行一次表達式;主動觸發

將setTimeout包含於被執行函數中,然后在函數外再次使用setTimeout來達到定時執行的目的(類似於遞歸),函數外的setTimeout在執行函數時再次觸發setTimeout從而形成周而復始的定時效果,

使用的時候各有各的優勢,使用setInterval,需要手動的停止tick觸發。而使用方法中嵌套setTimeout,可以根據方法內部本身的邏輯不再調用setTimeout就等於停止了觸發。

其實兩個東西完全可以相互模擬,具體使用那個,看當時的需要而定了。就像for可以模擬所有的循環包括分支,而還提供了do、while一樣。

例如:

如果方法需要參數,則該方法需要用引號括起來,否則不需要

//60秒后執行myFunction()一次
setInterval("myFunction()",60000);
funcition myFunction(){
  alert(’myFunction()’);
}

如果方法需要參數,則該方法需要用引號括起來,否則不需要

例如帶參數:
function attachmentUpload(fileCount,itemType, assessId, projectStatus,alertMessage)

{

  setTimeout('attachmentUpload('+fileCount+','+itemType+',\"'+ assessId+ '\",'+ projectStatus+',\"'+alertMessage+'\")',60000);

}

例如不帶參數:

function attachmentUpload()

{

  setTimeout(attachmentUpload,60000);

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM