window
对象提供了两个类似定时器功能的方法:超时调用和周期调用(间隙调用)
JavaScript
是单线程语言,但它允许通过设置超时值和间歇时间值来调度代码在特定的时刻执行。
前者是在指定的时间过后执行代码,而后者则是每隔指定的时间就执行一次代码。
window.setTimeout()
--超时调用/* setTimeout(code,millisec) 参数1:要执行代码。一般传入一个函数。(当然也可是字符串形式的代码,但是不建议使用) 参数2:多长时间后执行参数1中的代码。 单位毫秒 */ <script type="text/javascript"> //传入函数的时,函数名不要加括号。(因为方法不是我们调用,是引擎帮助我们调用) // setTimeout方法会返回一个值,表示超时调用的id,可以在任务执行前取消任务。 var timeOutId = window.setTimeout(go, 3000); // 3秒中之后执行函数go中的代码 function go () { window.open("http://www.atguigu.com/") } window.clearTimeout(this.timerId); //取消这个超时调用,如果超时调用已经执行完毕,就什么也不会发生。 </script>
setInterval
--周期调用(间隙调用)/* setInterval(code,millisec) 参数1:每隔一段时间执行一次的代码。 一般是一个函数 参数2:周期性执行的时间间隔。 单位毫秒 */ <body> <h1 id="time"></h1> <script type="text/javascript"> //显示时间,每秒钟变化一次。 window.setInterval(function() { var timeElement = document.getElementById("time"); //找到h1标签 var msg = new Date().toLocaleString(); timeElement.innerHTML = msg; //设置h1标签中的值 }, 1000); </script> </body> //清除间隔定时器 window.clearInterval(id);