どのように防振と節流を実現し、彼らの使用シーンは何ですか?
3925 ワード
ブレ止め
手ブレを防ぎ、その名の通り、手ブレを防ぎ、一度のイベントを何度も誤認しないようにします.キーボードを叩くのは毎日触れる手ブレ防止操作です.
コンセプトを理解するには、コンセプトが適用されるシーンを理解する必要があります.JSの世界では、どんなブレ止めのシーンがありますか?
function debounce (f, wait) {
let timer
return (...args) => {
clearTimeout(timer)
timer = setTimeout(() => {
f(...args)
}, wait)
}
}
しぼり
節流、その名の通り、水の流量を制御します.イベントの発生頻度を1 sに1回、さらには1分に1回制御する.サービス側(server)およびゲートウェイ(gateway)制御のリミットフロー(Rate Limit)と同様である.
function throttle (f, wait) {
let timer
return (...args) => {
if (timer) { return }
timer = setTimeout(() => {
f(...args)
timer = null
}, wait)
}
}