1. 程式人生 > >setInterval()與clearInterval()的用法

setInterval()與clearInterval()的用法

setInterval(function,interval[,arg1,arg2,......argn]):標準動作面板中setInterval函式的預設語法

setInterval(object,methodName,interval[,arg1,arg2,.....argn]):專家模式動作中使用的方法

clearInterval(id_of_setinterval):引數是必須的,為setInterval返回的ID值

       其中的引數function是一個函式名或者一個對匿名函式的引用。object引數指定從Object物件派生的物件。methodName制定 object引數中要呼叫的方法。interval制定對function或methodName呼叫兩次之間的時間,單位是毫秒

。後面的arg1等是可選的引數,用於制定傳遞給function或是methodName的引數。

//每隔5秒重新整理
var i = 0;
setInterval(function(){
    i++;
    console.log(i);	
}, 5*1000);


//例子三(function中含有引數)
function show2(str){
    trace(str);
}
setInterval(show2,2000,"每隔2秒我就會顯示一次");

       在使用setInterval方法時,每一次啟動都需要對setInterval方法返回的值做一個判斷,判斷是否是空值,若不是空值,則要停止定時器並將值設為空,再重新啟動,如果不進行判斷並賦值,有可能會造成計時器迴圈呼叫,在同等的時間內同時執行呼叫的程式碼,並會隨著程式碼的執行時間增加而增加,導致功能無法實現,甚至佔用過多資源而卡死奔潰。因此在每一次使用setInterval方法時,都需要進行一次判斷。

//例子二(setInterval返回一個Id值)
<body>
    <button onclick="start()">按鈕一</button>
    <button onclick="stop()">按鈕二</button>
    <script type="text/javascript">
        var interval = null;//計時器
		var i = 0;
		function start(){//啟動計時器函式
			if(interval!=null){//判斷計時器是否為空
				clearInterval(interval);
				interval=null;
			}
			interval = setInterval(overs,1000);//啟動計時器,呼叫overs函式,
		}
			
		function overs(){
			i++;
			console.log(i);	
		}
			
		function stop(){		
			clearInterval(interval);
			interval = null;
		}
	</script>
</body>
//例子三(function中含有引數)
function show2(str){
    trace(str);
}
setInterval(show2,2000,"每隔2秒我就會顯示一次");