美文网首页
节流和防抖

节流和防抖

作者: Zhou_qn | 来源:发表于2020-03-31 18:38 被阅读0次

参考文章:https://www.jianshu.com/p/c8b86b09daf0

在前端开发中,会经常用到一些触发事件,例如scroll、mousemove 等,但这些事件如果不加以限制就会持续的执行某个函数,因为浏览器性能是有限的,频繁执行函数很消耗浏览器的性能,所以我们希望控制事件的执行频率

节流

触发时不会一直执行函数,而是一定时间内执行一次函数(一段时间内执行一次代码)

防抖

持续触发不执行,不触发的一段时间之后再执行(每次触发都会更新时间)

  • 例:
    body里的代码
<body>
<div id="content" style="height: 200px; width: 200px; border: 1px black solid"></div>
</body>

script里的代码

  • 防抖:
 let num = 1;
    function count() {
        let content = document.getElementById('content');
        content.innerHTML = num++;
    }
    function debounce(func,wait){
        let timeout;
        return function () {
            let context = this;
            let args = arguments;
            if(timeout){
                //当一直触发就会一直进入这个分支,就会重新计时
                clearTimeout(timeout);
            }
            timeout = setTimeout(()=>{
                func.apply(context,args);
            },wait)
        }
    }
    content.onmousemove = debounce(count,1000);
  • 节流
 function throttle(func,wait){
        let timeout;
        return function(){
            let context = this;
            let args = arguments;
            if(!timeout){
                //当进入以后!timeout一直是false,
                //直到wait时间到了,timeout=null,!timeout=true,
                //触发func.apply(context,args),计数函数被执行
                timeout = setTimeout(()=>{
                    timeout = null;
                    func.apply(context,args);
                },wait)
            }
        }
    }
    content.onmousemove = throttle(count,1000);

相关文章

  • 谈谈js中的节流和防抖函数

    关于节流和防抖,这篇文章说的很好了,深入lodash源码分析防抖和节流深入篇 | Lodash 防抖和节流是怎么实...

  • JavaScript防抖和节流

    1. 认识防抖和节流 1.1. 对防抖和节流的认识 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电...

  • 前端性能优化-浅谈js防抖和节流

    浅谈js防抖和节流

  • Javascript 基础

    1、函数防抖和函数节流 【《javascript高级程序设计》里,函数节流是这里讲的函数防抖。】函数防抖: 在事件...

  • js 防抖 节流

    节流 防抖1 防抖2

  • 2019-03-27

    js的防抖和节流 据我所知防抖和节流都是为了优化作用,减轻浏览器和服务端的负担,防抖和节流俩个的英文要记住: de...

  • js的防抖和节流

    js的 防抖(debounce)和 节流(throttle ) 防抖和节流一般用于高频触发事件,属于浏览器性能优化...

  • 手写防抖和节流函数实现

    1. 认识防抖和节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流...

  • 实现防抖和节流

    一、认识防抖和节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流动...

  • 2019-04-24关于节流和防抖

    节流: 应用场景: 防抖: 应用场景: 1.节流 2.防抖

网友评论

      本文标题:节流和防抖

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