美文网首页
初识js下的定时器

初识js下的定时器

作者: 小焲 | 来源:发表于2017-08-13 15:26 被阅读0次

定时器 setTimeout、setInterval

定时器的使用方法

  • setTimeout(fn,1000) : 1s后执行fn函数(仅一次,不会循环触发);
  • setInterval(fn,1000) : 1s执行一次fn函数(循环触发);
    二者用法相同,只是前者只执行一次,后者会无限循环。

传递参数

一般情况下,我们不能直接在定时器中直接传参,不然函数就会自执行,不在是一个函数。

  • setInterval(“fn(a)”,1000):将要传参的函数用 “ ” 包裹,定时器会自动识别字符串并执行里面的函数。
    注意:有作用域问题,如果加引号,fn函数必须定义在window.onload之外,否则setInterval(“fn(a)”,1000); fn是not defined。
  • setTimeout(function(){ fn(a);fn1(b); },1000):将要函数用匿名函数function(){ }包裹,这种方法可以同时执行多个函数。
  • setTimeout(eval(“fn()”),1000):eval方法会把里边的字符串变成可执行的代码。

清除定时器

一般页面上的定时器执行完记得都要清除

  • clearTimeout(timer)
  • clearInterval(timer)

在清除定时器前,我们需要先给定时器一个名字才能清除;如我们要先 var timer = setTimeout(fn(),1000);然后我们才能使用 clearTimeout(timer);清除。

HTML5下 的requestAnimationFrame函数

requestAnimationFrame函数是针对动画效果的API,在浏览器中优化并行的动画动作。它的作用与定时器类似,但是它的间隔时间为浏览器本身的间隔时间。兼容主流浏览器,但是不兼容IE8以下。

  • requestAnimationFrame(fn): 一定间隔之后执行fn函数
  • cancelAnimationFrame(timer) : 取消动画帧请求,也要提前给名字

相关文章

网友评论

      本文标题:初识js下的定时器

      本文链接:https://www.haomeiwen.com/subject/xhcerxtx.html