間引き(throttle / debounce)
デモ
この機能にはデモはありません
JSコードコピー
使い方
throttle
は連続したイベントを一定間隔で処理します。(本コードは10回に1度)
画面をスクロールしたら〜などのイベントと組み合わせて使ってください。
debounce
は連続したイベントの最後の1度が処理されます。
画面をリサイズしたら〜などのイベントと組み合わせて使ってください。
解説
throttle
は即時関数になっており、内部で自身が呼ばれた回数を保持するローカル変数callCount
を持っています。
返却された関数はそのローカル変数を参照しており、10回に1度だけコールバック変数を処理するためのカウントアップ処理(++callCount
)と10の倍数チェック(callCount % 10 === 0
)を同時に行っています。
debounce
は即時関数になっており、内部でタイマー情報を保持するローカル変数timer
を持っています。
返却された関数はそのローカル変数を参照しており、300ミリ秒後にコールバック関数を処理するタイマー設定と、前に呼び出された時から300ミリ秒経過していなければ前をタイマーをキャンセルする、という処理を行っています。
ヘルプ・コンタクト
機能に関するご質問は、このページの下部に表示されている Twitter
のアイコンから Twitter に遷移後、 DM 等でご連絡ください。
導入サポートやカスタマイズも有償にてお受け致しますので、 DM
等でご連絡ください。