js防抖 节流理解

防抖理解:将多次操作合并为一次操作进行。原理是维护一个计时器,规定在delay时间后触发函数,但是在delay时间内再次触发的话,就会取消之前的计时器而重新设置。这样一来,只有最后一次操作能被触发。

节流理解:使得一定时间内只触发一次函数。原理是通过判断是否有延迟调用函数未执行。

区别: 函数节流不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数,而函数防抖只是在最后一次事件后才触发一次函数。 比如在页面的无限加载场景下,我们需要用户在滚动页面时,每隔一段时间发一次 Ajax 请求,而不是在用户停下滚动页面操作时才去请求数据。这样的场景,就适合用节流技术来实现。

定义防抖: 频繁触发,但只在特定的时间内没有触发执行条件才执行一次代码
定义节流: 频繁触发,但只在特定的时间内才执行一次代码

形象理解如下:
防抖: 此时此刻我们都在排队等公交,司机说必须等到坐满才会发车,这时候的参照标准就是最后一个人上车,公交车好比我们的js代码,最后一个人就充当我们的执行条件。
节流: 每5分钟发车一路公交车,无论车上有多少人。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在进行窗口的resize、scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负...
    iqing2012阅读 813评论 0 1
  • 在日常开发中,我们经常能够碰到以下工作场景: 对提交按钮进行变态的点击压力测试输入框内容的实时校验(譬如验证用户名...
    叫我小徐阅读 1,037评论 0 5
  • 闭包 由于节流和防抖函数的实现都用到了闭包,所以在了解节流和防抖之前我先简单介绍下什么是闭包。 由于js代码在一个...
    _章鱼小丸子阅读 796评论 0 0
  • 不想回忆的,不敢回忆的,都会消失不见吗? 想成为一棵树,扎根地下,紧握土壤,即便以后归为黄土也亲切。张扬自己的双手...
    Joyce_Hao阅读 202评论 0 1
  • 什么叫具体: 细节如丰满(长)、结实、漂亮、健康 一、读书分享:她的声音真甜啊,像一颗水果糖。 二、方法 1、在句...
    坚果孖宝阅读 848评论 0 0