节流函数的

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
卡布琦诺 2020-05-05 16:36:38

同学你好,关于同学的问题解答如下:

1、let timer = null;创建一个标记用来存放定时器的返回值,清除上一次的定时器表示timer && clearTimeout(timer);

2、第二个问题,需要结合上下文的代码环境来理解,watch中的代码会执行返回匿名函数。也就是本质上,监听query执行的就是图二的匿名函数。

http://img1.sycdn.imooc.com//climg/5e9d89fa09ce5b8707080195.jpg

http://img1.sycdn.imooc.com//climg/5e9d8a420937b27000000000.jpg

3、节流函数和防抖函数的区别:

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

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

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

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师