1. 程式人生 > >JS中setInterval()和clearInterval()的使用以及注意事項 (實用,贊)

JS中setInterval()和clearInterval()的使用以及注意事項 (實用,贊)

原文出處:https://blog.csdn.net/YDesire/article/details/81124331
延伸閱讀:clearInterval(timer)和timer = null的區別

setInterval(): 間隔指定的毫秒數不停地執行指定的程式碼,定時器

clearInterval(): 用於停止 setInterval() 方法執行的函式程式碼

使用方法:
setInterval(code,millisec),兩個引數都是必須的,第一個引數為要呼叫的函式或要執行的程式碼串。第二個引數為週期性執行或呼叫 code 之間的時間間隔,以毫秒計。

clearInterval(id_of_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>

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