转自:http://blog.sina.com.cn/s/blog_7d892a6701017yq8.html (已加以整理)
一、setTimeout和setInterval的区别
setTimeout (表达式,延时时间)
setInterval(表达式,交互时间)
延时时间/交互时间是以豪秒为单位的(1000ms=1s)
setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次
setInterval 在执行时,它从载入后,每隔指定的时间就执行一次表达式,直到使用clearInterval来终止它或窗口关闭
cleartimeout() 关闭执行的setTimeout。如:
<script type="text/javascript"> var c=0; var t; function timedCount() { document.getElementById('txt').value=c; c=c+1; t=setTimeout("timedCount()",1000); //个人理解:创建一个setTimeOut对象赋给t } function stopCount() { clearTimeout(t); //个人理解:释放setTimeOut对象t } </script>
clearInterval() 关闭执行的setInterval。如:
下面这个例子将每隔 50 毫秒调用 clock() 函数。您也可以使用一个按钮来停止这个 clock:
<html> <body> <input type="text" id="clock" size="35" /> <script language=javascript> var int=self.setInterval("clock()",50) function clock() { var t=new Date() document.getElementById("clock").value=t } </script> </form> <button onclick="int=window.clearInterval(int)"> Stop interval</button> </body> </html>
function load() { alert("hello"); setTimeout(load,10); //每隔10ms执行一次自身,当然还要算上函数本身的执行时间 } function load() { alert("hello"); } setInterval(load,10);
function changesrc(url) { img1.src=img.src; preload(url); t=setTimeout(function(){changesrc(url);},10); }
function delayRun(code, time) { var t = setTimeout(code, time); }