本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/09/21/%E4%BB%80%E4%B9%88%E6%98%AFThrottle/
摘要
本文主要讲述了:
- 什么是 Throttle
- 模式
- underscope 的实现
正文
什么是 Throttle
Throttle(节流)是一种限制函数执行频率的算法。
节流函数被第一次调用时将立即执行,而后节流函数会进入时长为t
的冷却期。
冷却期内,如果节流函数被第二次调用,节流函数并不会立即执行,而是直接返回上一次调用的返回值并计划在冷却期结束后再执行第二次调用。第二次执行完成后,节流函数进入新的冷却期。
冷却期内,如果节流函数被第三次调用,由于冷却期结束后已经安排了第二次调用的执行,因此节流函数什么也不做,直接返回上一次调用的返回值。
模式
禁用前沿执行
节流函数被第一次调用时并不会立即执行,而是直接返回上一次调用的返回值并计划在冷却期结束后再执行第一次调用。等到第一次执行完成后,节流函数会进入时长为t
的冷却期。
冷却期内,如果节流函数被第二次调用,由于冷却期结束后已经安排了第一次调用的执行,因此节流函数什么也不做,直接返回上一次调用的返回值。
禁用后沿执行
节流函数被第一次调用时将立即执行。而后节流函数会进入时长为t
的冷却期。
冷却期内,如果节流函数被第二次调用,节流函数什么也不做,直接返回上一次调用的返回值。
underscope 的实现
1 | _.throttle = function (func, wait, options) { |
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/09/21/%E4%BB%80%E4%B9%88%E6%98%AFThrottle/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2019/09/21/%E4%BB%80%E4%B9%88%E6%98%AFThrottle/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。