jq刷新页面会定时器会清除么

JavaScript036

jq刷新页面会定时器会清除么,第1张

JS定时器有两种,分别是setTimeout和setInterval,区别是前者是一次执行,后者是循环执行,具体什么意思呢,直接看代码。

//指定时间为6000毫秒,即6s,到达6s后,执行一次,之后不再执行。

setTimeout(function(){

alert("执行一次定时器")

},6000)

//指定时间为6s,每过6s执行一次

setInterval(function(){

alert("循环执行定时器")

},6000)

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

要关闭定时器,首先我们要先获取到定时器,即如果页面中设置了多个定时器,我们需要知道要关闭那个定时器,直接看代码:

//定义一个变量获取到定时器

var timer = setInterval(function(){

alert("timer是一个数字,即代表了当前定时器")

},6000)

var timer2 = setTimeout(function(){

alert("第二个定时器")

},6000)

//调用方法,关闭指定的定时器

clearInterval(timer)

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

注:定时器启动后,刷新浏览器会清空定时器。有时我们在页面中定义了定时器,在关闭页面时,定时器并不会关闭,我们可以获取定时器,然后在页面的关闭事件中清除定时器。有时我们需要在其他页面对定时器进行关闭,这时可以在对应的页面定义变量,然后在定义定时器页面获取定时器,并赋值给指定页面的变量,这样就可以在指定页面对定时器进行关闭了,需要注意的是,如果我们定时器放到函数中时,在页面初始化时并不能获取到定时器,只有在调用了函数后才会获取到定时器,所以如果要在页面初始化时就获取定时器,不要将定时器放到函数中。这样在页面加载时可以直接加载定时器启动定时器,这样就能拿到定时器了。

定时器一般有两个

1)setTimeout()//n毫秒后执行一次

2)setInterval()//每隔n秒执行一次

这两个方法都有个返回值,返回一个定时器id,可以定义一个变量接收

清除定时器方法:

setTimeout()对应的是 clearTimeout(id)

setInterval()对应的是 clearInterval(id)

下面有个例子:

<script>

    //setTimeout 1000ms后执行1次

   var i = setTimeout(function(){

   },1000)

    //setInterval 每隔1000ms执行一次

    var j = setInterval(function(){

    },1000)

    //清除Timeout的定时器,传入id(创建定时器时会返回一个id)

    clearTimeout(i)

    //清除Interval的定时器,传入id(创建定时器时会返回一个id)

    clearInterval(j)

</script>