前言
通过定时器自动的做一些事情,例如发送网络请求
一、定时器
定时器:定时器可以设定时间自动的做某件事情。定时器是一种方法,不是对象,定时器属于 window 对象。
二、定时器具体内容
- 周期性定时器:间隔一定的时间,自动的做某件事情 setInterval(函数名,间隔时间)
- 一次性定时器:延迟多长时间做某件事情一次 setTimeout(函数名,间隔时间)
- 上面这两个设置定时器的方法会返回一个线程号,这个线程号可以用来清除定时器,脚本中包含多个定时器,这个线程号就可以用来标记清除哪一个 var index = console.log(setInterval(函数名,间隔时间))
- 清除定时器的方法 clearInterval(线程号) clearTimeout(线程号)
- 定时器最好设置在全局作用域中,因为设置在局部作用域中的话,只能在设置定时器的那个函数中去暂停定时器,但是实际工作中,暂停定时器和设置定时器时在不同的函数中进行的,所以定时器的变量要设置成全局变量,方便使用。
- 定时器是我们第一个遇到的异步的方法
- 之前的所有方法都是同步的,同步的方法在 js 中执行的顺序上是写在前面的代码就会先执行,不管前面的语句需要多久的时间来执行完毕,前面的语句执行完成之后,后面的代码才会执行。
- 同步和异步的语句同时存在的时候,同步的一定先于异步的执行完毕。就算异步的代码的间隔时间设置为 0,并且异步的代码写在了同步的代码之前。同步的代码也会先于异步的代码执行完毕。
三、定时器实例
基本的语法
const intervalID = setInterval(myCallback,1000); // setInterval() 的返回值为一个线程号,这个线程号可以用在清除定时器的函数中 clearInterval(线程号)
function myCallback(a,b){
var a = "jason";
var b = "song";
console.log(a);
console.log(b);
}
通过点击开始按钮就开始显示时间,通过点击结束按钮就结束显示时间
var start = document.getElementById("start");
var stop = document.getElementById("stop");
var index;
function begin(){
index = setInterval(go,1000); // setInterval() 函数返回线程号 //通过在外面声明的全局变量 index 使得其他地方可以使用这个线程号
}
// console.log(index);
function go(){
var date = new Date();
console.log(date);
}
start.onclick = begin;
stop.onclick=function(){
clearInterval(index);
}