美文网首页
初识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