JS中2种定时器的使用及清除的实现
一、什么是定时器?
定时器就是由JS提供了一些原生方法来实现延时去执行某一段代码。
二、定时器的分类
1、一次性定时器:
setTimeout: 设置一个定时器,在定时器到期后执行一次函数或代码段
使用方法:var timer=setTimeout(fun,毫秒数)
清除的方法:clearTimeout(timeoutId)
//一次性 var timeoutId = window.setTimeout(fun[, delay, param1, param2, ...]); var timeoutId = window.setTimeout(code[, delay]); //timeoutId: 定时器ID //fun: 延迟后执行的函数 //code: 延迟后执行的代码字符串,不推荐使用原理类似eval() //delay: 延迟的时间(单位:毫秒),默认值为0 //param1,param2: 向延迟函数传递而外的参数,IE9以上支持
2、周期性定时器:
setInterval: 以固定的时间间隔重复调用一个函数或者代码段
使用方法:var timer=setInterval(fun,毫秒数)
清除的方法:clearInterval(timer)
//周期性 var intervalId = window.setInterval(fun, delay[, param1, param2, ...]); var intervalId = window.setInterval(code, delay); //intervalId: 重复操作的ID //func: 延迟调用的函数 //code: 代码段 //delay: 延迟时间,没有默认值
三、清除定时器
由于定时器在调用时,都会返回一个整形的数字,该数字代表定时器的序号,即第多少个定时器,所以定时器的清除要借助于这个返回的数字。
要清除定时器,就必须在用定时器的时候,定义一个变量来记录定时器的返回值。如下:
//setTimeout 1000ms后执行1次 var test1 = setTimeout(function(){ //your codes },1000); //setInterval 每隔1000ms执行一次 var test2 = setInterval(function(){ //your codes },1000) //清除Timeout的定时器,传入变量名(创建Timeout定时器时定义的变量名) clearTimeout(test1); //清除Interval的定时器,传入变量名(创建Interval定时器时定义的变量名) clearInterval(test2);
注:有时候在写的时候,还会习惯将清空的定时器的变量置空,这样写既可以释放内存,也可以便于后边代码的判断。
到此这篇关于JS中2种定时器的使用及清除的实现的文章就介绍到这了,更多相关JS 定时器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
JavaScript使用HTML5的window.postMessage实现跨域通信例子
这篇文章主要介绍了JavaScript使用HTML5的window.postMessage实现跨域通信例子,需要的朋友可以参考下2014-04-04JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
这篇文章主要介绍了JavaScript实现横线提示输入验证码随输入验证码输入消失的方法,非常实用,在微信开发中经常会用到,需要的朋友可以参考下2016-09-09使用requestAnimationFrame实现js动画性能好
requestAnimationFrame优于setTimeout/setInterval的地方在于它是由浏览器专门为动画提供的API,在运行时浏览器会自动优化方法的调用,并且如果页面不是激活状态下的话,动画会自动暂停,有效节省了CPU开销,这篇文章给大家详细介绍使用requestAnimationFrame实现js动画2015-08-08
最新评论