JavaScript之定时器


原文链接: JavaScript之定时器

setInterval和setTimeout的区别,

  setTimeout(function(){
    /* Some long block of code... */
    setTimeout(arguments.callee, 10);
  }, 10);
 
  setInterval(function(){
    /* Some long block of code... */
  }, 10);

看第一眼,会觉得这两段代码功能相同,实际上,他们是不同的。

   需要注意到,setTimeout的回调函数的执行总是保证了至少10ms的间隔(与上一个回调的执行相比,实际执行时,这个间隔可能变长,但是不可能更少),但是setInterval会尝试每隔10ms执行一次回调,不管上一个回调函数时候已经执行完毕。(很多类库的动画都是使用的setTimeout实现)
  • window定时器

    • setIntval(表达式,毫秒)
    • clearIntval(定时器对象)
    • setTimeout(表达式,毫秒)
    • clearTimeout(定时器对象)


  • setTimeout(表达式,毫秒):是指经过指定时间后执行事件一次

  • 清除定时器:

  • 在创建定时器的时候 把创建的结果赋给一个定时器变量 比如:var clock = windows.setTimeout()再用cleraTimeout(clock);

//定一段时间后执行某一个函数

	function t(){
		 
		window.location.href = 'http:///www.baidu.com';
	}

	window.setTimeout('t()',10*1000);//setTimeout只是执行一次

	//用setTimeout来实现每隔5秒执行某一个一次  放到函数里面可以做到

setTimeout实现每隔几秒执行一下

	function t(){
		 
		// window.location.href = 'http:///www.baidu.com';
	window.setTimeout('t()',2*1000);
	console.log("timeout 2s")
	}

	t();

setIntval每隔指定时间执行一次事件

  • 碰到每隔几秒执行一次事件的 推荐用setInterval

```javascript

function t(){
    alert('2秒到');
}

var clock = window.setInterval('t()',2000);//clock命名为了后面消除定时器用到 这个变量是指向定时器

function t1(){
    clearInterval(clock);
}
```
`