美文网首页
js中的定时机制与函数节流

js中的定时机制与函数节流

作者: jadefan | 来源:发表于2019-10-27 13:12 被阅读0次

js中常用setTimeout()setInterval()创建定时器,实现延迟或定时执行。

定时机制

js是运行在单线程环境中的,按照代码队列中的顺利依次执行
定时器在指定时间将执行代码加入到队列中,js在执行完队列中所有等待代码后,才会执行定时器的代码,所以执行时机是不能保证的。
其实js中没有任何代码是立刻执行的,但一旦进程空闲则尽快执行。

重复定时器

当重复定义定时器时,会有两个问题:

  1. 某些间隔会被跳过
  2. 多个定时器的代码执行之间的间隔可能会比预期的小

函数节流

当某些代码在不间断的情况下连续重复执行,比如浏览器的resize事件处理时会高频率计算和修改DOM的宽高,很可能会让浏览器崩溃,为了避免这种问题,可以使用函数节流

<body>
  <div id="main"></div>

  <script> 
    // 节流函数
    function throttle(method, context) {
      clearTimeout(method.tId);
      method.tId = setTimeout(() => {
        method.call(context);
      }, 100);
    }
    // 操作DOM的函数
    function resizeDom() {
      var div = document.getElementById('main');
      div.style.height = window.innerHeight + 'px';
      console.log(div.style.height);
    }
    window.onresize = function () {
      throttle(resizeDom);
    }
  </script>
</body>

相关文章

  • js中的定时机制与函数节流

    js中常用setTimeout()和setInterval()创建定时器,实现延迟或定时执行。 定时机制 js是运...

  • JS中的函数节流(throttle)

    JS中的函数节流(throttle) 一、什么是函数节流(throttle) 概念:限制一个函数在一定时间内只能执...

  • 函数节流与函数防抖

    函数节流与函数防抖的区别JS魔法堂:函数节流(throttle)与函数去抖(debounce)函数的防抖与节流 自...

  • 函数防抖和节流

    前言:函数防抖和函数节流都是用于优化高频率执行js的一种手段 节流 函数节流:是指一定时间内js方法只跑一次应用场...

  • 函数节流和函数防抖

    函数节流和函数防抖两者都是优化高频率执行js代码的一种手段。 函数节流 概念:在一定时间内,不管事件触发几次,js...

  • js节流函数

    JS节流函数 1. 节流函数的定义 2. 节流函数的用法

  • 函数节流(throttle)与函数去抖(debounce)

    JavaScript-性能优化,函数节流(throttle)与函数去抖(debounce)JS魔法堂:函数节流(t...

  • 数组循环定时器

    定时器 定时器在javascript中的作用1、制作动画2、异步操作3、函数缓冲与节流 定时器类型及语法 /*定时...

  • 数组循环定时器

    定时器 定时器在javascript中的作用1、制作动画2、异步操作3、函数缓冲与节流 定时器类型及语法 /*定时...

  • 定时器

    定时器在javascript中的作用1、制作动画2、异步操作3、函数缓冲与节流 定时器:setTimeout 只...

网友评论

      本文标题:js中的定时机制与函数节流

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