請同學(xué)幫我看看這是哪里錯了。一個小計時器。運用clearInterval()無法停止循環(huán)。
<!DOCTYPE??HTML> <html?> <head> <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/> <title>系好安全帶,準(zhǔn)備啟航</title> <script?type="text/javascript"> function?kaishi() { ?var?time=new?Date(); ?document.getElementById("in").value=time; ?setInterval("kaishi()",1000);?? ?}? function?jieshu() {? ?clearInterval("kaishi()")? ?}? </script> </head> <body> <form> <input?type="text"?id="in"?size="50px"?/> <br/> <input?type="button"?value="點擊開始計時"?onClick="kaishi()"> <input?type="button"?value="點擊停止計時"?onClick="jieshu()"> </form> </body> </html>
我做的這個有兩個按鈕,點擊第一個,開始每秒刷新計時器。點擊第二個,停止刷新計時器。
第一個沒問題,第二個怎么也停不下來。還有,一下電腦內(nèi)存占得特別高,卡住了,什么原因?
唉,現(xiàn)在每節(jié)課都得提問題,每節(jié)課都得遇到挫折。好難呀!
2016-04-28
clearInterval的參數(shù)是setInterval的返回值。所以正確用法i=setInterval("kaishi()",1000);?clearInterval(i)?
要區(qū)分setInterval與setTimeout,前者每單位秒進行一次調(diào)用,后者延遲單位秒后調(diào)用一次,所以,你用setInterval還自調(diào)用,每新的一秒,原有計時器調(diào)用函數(shù)加新計時器,新來的計時器也要調(diào)用函數(shù)加計時器,每一秒都在加大量計時器,大量占用內(nèi)存,當(dāng)然卡住了。
仔細看參數(shù)用法,少走彎路,每節(jié)課都有問題是好事,現(xiàn)在發(fā)現(xiàn)的問題越多,學(xué)到的就越多,每個問題都能延伸出很多小細節(jié)知識點。
下面放修正過的代碼
<!DOCTYPE ?HTML>
<html >
<head>
? ?<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
? ?<title>系好安全帶,準(zhǔn)備啟航</title>
? ?<script type="text/javascript">
? ? ? ?function kaishi()
? ? ? ?{
? ? ? ? ? ?var time=new Date();
? ? ? ? ? ?document.getElementById("in").value=time;
? ? ? ?}
? ? ? ?i=setInterval("kaishi()",1000);
? ? ? ?function jieshu()
? ? ? ?{
? ? ? ? ? ?clearInterval(i)
? ? ? ?}
? ?</script>
</head>
<body>
<form>
? ?<input type="text" id="in" size="50px" />
? ?<br/>
? ?<input type="button" value="點擊開始計時" onClick="kaishi();">
? ?<input type="button" value="點擊停止計時" onClick="jieshu()">
</form>
</body>
</html>
2016-04-28
樓上說的好仔細!給一百個贊