setTimeout()
setTimeout()一次性计时器,有两个参数,第一个是要调用的js代码,第二个是在执行前需要等待的时间。只会执行一次,不会循环执行
clearTimeout()清除计时器。
setTimeout(function (){
console.log(1);
},1000)
输出:1
若将它变为循环计时器,可以函数自身调用,重复执行
var count=0;
var time=null;
method();
function method(){
count++;
console.log(count);
if(count>5)
{
//清除计时器
clearTimeout(time);
return;
}
//自身调用,重复执行
time=setTimeout(method,1000); //method不带括号
//time=setTimeout("method()",1000);
}
输出:
1
2
3
4
5
6
setInterval()
setInterval() 方法会不停地调用函数(重复执行其内容),直到被清除
clearInterval() 清除计时器
setInterval(function () {
console.log(1);
},1000)
16ms 自动执行的计时器
在当前页面失去焦点时,会自动暂停
//兼容性
var requestAnimation = window.requestAnimationFrame ||window.mozRequestAnimationFrame ||window.webkitRequestAnimationFrame || window.msRequestAnimationFrame ||
function (callback) {
setTimeout(callback, 1000 / 60);
}
var count=0;
var time=null;
loop();
function loop() {
count++;
console.log(count);
if(count>=100)
{
//清除计时器
window.cancelAnimationFrame(time);
return;
}
//window.requestAnimationFrame(loop);
time=requestAnimation(loop);//16ms
}