js 中的函数节流和防抖

函数节流是指一定时间内js方法只跑一次。比如人的眨眼睛,就是一定时间内眨一次。这是函数节流最形象的解释。
函数防抖是指频繁触发的情况下,只有足够的空闲时间,才执行代码一次。比如生活中的司机开公交,就是一定时间内,如果有人陆续刷卡上车,司机就不会开车。只有别人没刷卡了,司机才开车。

函数节流

setInterval(()=>{
    test()
},200)
// 节流
var canGo=true;
function test() {
    if (canGo) {
        canGo=false;
        setTimeout(() => {
            canGo=true;
            console.log("节流");
        }, 300);
    }else{
        console.log("未执行");
        return;
    } 
}
image.png

函数防抖

let interval=setInterval(()=>{
    test()
},200)
setTimeout(() => {
    clearInterval(interval)
    interval = setInterval(() => {
        test()
    }, 200)  
}, 900);
// 防抖
var time="";
function test() {
    clearTimeout(time);
    time=setTimeout(() => {
        console.log("节流");
    }, 300);
    console.log("未节流")
}
image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、概念 函数节流和函数防抖,两者都是优化高频率执行js代码的一种手段。 旧款电视机的工作原理,就是一行行得扫描出...
    木子川页心阅读 531评论 1 1
  • 概念解释 在一定时间内,代码执行的次数不一定要非常多,执行的代码越多,带来的效果也是一样,反而会因为执行次数过多而...
    辣瓜瓜阅读 1,577评论 0 2
  • 前言 最近和前端的小伙伴们,在讨论面试题的时候。谈到了函数防抖和函数节流的应用场景和原理。于是,想深入研究一下两者...
    youthcity阅读 23,621评论 5 78
  • 在日常开发中,我们经常能够碰到以下工作场景: 对提交按钮进行变态的点击压力测试输入框内容的实时校验(譬如验证用户名...
    叫我小徐阅读 1,017评论 0 5
  • 有人形容中国的书法是舞蹈的艺术。看那撇.捺.点.横.竖.直.平便知。这一点评价,似乎没错,一是书法的审美,...
    歌龄阅读 1,358评论 3 4