この記事の内容は、JavaScript での関数スロットルとアンチシェイクの実装に関するものです。必要な方は参考にしていただければ幸いです。
関数スロットル (スロットル)
用語の説明
関数スロットル (スロットル): 関数を継続的に実行し、一定の間隔で関数を実行します
使用シナリオ
マウスの移動、mousemove イベント
DOM 要素の動的配置、ウィンドウ オブジェクトのサイズ変更とスクロール イベント
etc...
関数スロットルの簡単な実装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function throttle(fn, delay) {
var last;
var timer;
delay || (delay = 250);
return function () {
var context = this;
var args = arguments;
var now = + new Date ();
if (last && now < last + delay) {
clearTimeout(timer);
timer = setTimeout( function () {
last = now;
fn.apply(context, args);
}, delay);
} else {
last = now;
fn.apply(context, args);
}
};
}
|
ログイン後にコピー
Function debounce (デバウンス)
用語の説明
関数 debounce (デバウンス): 呼び出しメソッドは、アイドル時間が特定の値以上である必要がある場合にのみ実行されます
利用シナリオ
テキスト入力キーダウンイベント
Wait...
手ぶれ補正(デバウンス)機能の簡単な実装
1 2 3 4 5 6 7 8 9 10 11 12 | function debounce(fn, delay) {
var timer;
delay || (delay = 250);
return function () {
var context = this;
var args = arguments;
clearTimeout(timer);
timer = setTimeout( function () {
fn.apply(context, args);
}, delay);
};
}
|
ログイン後にコピー
以上がJavaScript での機能スロットルと手ぶれ補正の実装 (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。