节流【JS面试题】

作者: 前端小野2分类: 计算机技术 发布时间: 2021-10-12 14:47:18 浏览:9700 次

节流【JS面试题】

要开森偶:
老师可以出一期vue项目打包配置及优化项目的视频么[星星眼]

不吃辣椒不算怂:
感觉这个例子里用了settimeout结果是输出总会被用户实际操作慢一个间隔时间。比如第一次drag的那帧其实没有记录,只记录到了操作后200ms的那帧。一般也会需要用户的最后一帧,但是这个代码只能抓起用户操作时间里的整数个间隔时间中的操作,最后一个大概率记录不到。

【回复】节流不能简单的用这个函数包裹一下回调函数,中间还有些操作要做。
入_画:
为什么之后再次重新触发throttle函数不走最上面的let timer = null 了呢

青青草原年级第一:
这个节流不行,不能通过测试的 https://zh.javascript.info/task/throttle

【回复】而且正规的节流应该立即响应第一次请求
【回复】确实,应该只执行时间内的第一次请求
【回复】确实,应该只执行时间内的第一次请求
霹雳游侠兰斯洛特:
不懂就问,我要学多多少年才能达到up一半的实力

夜月魂灬:
结果最后也没说为什么e打印出是undefined

【回复】在节流返回的方法里传入event就行了
【回复】以下是我个人理解,,,事件是绑定在boxDOM上的,当拖动了boxDOM,就会触发drag侦听事件,能拿到事件对象e,但是他是把这个回调函数 以参数的形式传递给了throttle函数中,事件对象e是写在boxDOM的事件侦听中的回调中,才能获取他的事件对象
工藤孤独:
加以改造后的节流,第一次里面执行,可以拿到事件对象 const box = document.querySelector('.box'); function throttle(fn, DelayTime = 1000) { var lastTime = 0; return (e) => { var now = new Date().getTime(); if(now - lastTime > DelayTime) { lastTime = now; fn(e) } } } box.addEventListener('drag', throttle((e)=>{ console.log('e :>> ', e); }));

曼基康短腿:
有点问题, 应该拖动就执行 再按等待时间继续执行

韩松落:
我有个疑惑为啥把let timer = null 放到return 函数里面节流的效果就起不到作用了?

阿斯顿阿萨德阿斯达:
所以第三部分和第一部分功能有什么区别,为什么打印时频率大不相同

魔术师monika:
服了,this都不讲,你这讲一半浪费别人时间吗

【回复】出门右转,还有很多优秀老师讲this哈。加油![打call][打call][打call]

视频教程 编程 野生技术协会 2021一起学习 前端 JAVASCRIPT WEB VUE WEB前端 打卡挑战

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!