面试之手写节流函数
节流函数是干嘛的?
所谓节流,字面理解就是节省流量,但是在我们眼中应该节约性能,可它是如何做到节约性能的?什么情况下才需要节约性能?
一,什么情况下才需要节约性能?
对某一触发事件,在触发事件的过程中,多次重复触发,我们要做的就是减少它触发的次数
二,如何做到节约性能的?
它呢,在你开始触发事件,并重复做同一动作时(输入框频繁输入),每隔一段时间(interval),就会执行一次,直到我们停止动作。
这样做,相比于原来的频繁触发,大量减少了网络请求,减轻了服务器的压力,对于用户来说,体验也会更好。
三,如何实现节流?
其实很简单,运用高中的物理知识即可,我们划分三个部分,上一次节点,当前节点,剩余节点,我们要做的就是利用上一次节点,当前节点和interval求出剩余节点,再根据剩余量是否存在来决定是否调用函数。
下面有个完整版的节流函数,它不仅实现了基本的节流,还实现了诸如初次请求的开关,末尾请求的开关,取消,回调返回值等功能!
至于用法嘛,倒是简单,如下哈