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