PHP秒杀截流原理,节流阀和去抖动的基本实现方法介绍
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于節(jié)流閥和去抖動的基本實現(xiàn)方法介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
節(jié)流閥throttle
觸發(fā)的事件以周期的形式去執(zhí)行,而非實時。如滴水的水龍頭。function throttle (fn, delay) {
// 利用閉包變量時效性
let timeout
let arg
return function () {
arg = arguments
if (!timeout) {
timeout = setTimeout(() => {
fn.apply(this, arg)
timeout = null
}, delay)
}
}
}
// demo
/*
var test = throttle(function (a) {console.log(a)}, 1000)
test(1) // 不執(zhí)行
test(2) // 不執(zhí)行
test(3)
=> 3
test = null // 不需要時釋放內(nèi)存
*/
去抖動debounce
事件最后一次觸發(fā)的N毫秒后觸發(fā),如電梯門。function debounce (fn, delay){
let timeout
return function(){
const args = arguments
clearTimeout(timeout)
timeout = setTimeout(() => {
fn.apply(this, args)
}, delay)
}
}
// 用法同throttle
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的PHP秒杀截流原理,节流阀和去抖动的基本实现方法介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 除湿喝什么好
- 下一篇: tars框架php,TarsPHP: T