blog

アンチシェイクとスロットリングの実装

1. ディザリング 2. スロットリング 高頻度のイベントがトリガーされますが、n秒に1回しか実行されないため、スロットリングによって関数の実行頻度が薄まります。アンチディザリングとの違いは、各関数呼...

Mar 1, 2020 · 1 min. read
Share this

アンチディザリング

この関数は、高周波イベントがトリガーされてからn秒後に一度だけ実行され、n秒後に再び高周波イベントがトリガーされた場合は、時間が再計算されます。

function debounce(fn, wait) {
 let timeout = null;
 
 return function() {
 clearTimeout(timeout);
 
 timeout = setTimeout(() => {
 fn.apply(this, arguments);
 }, wait)
 }
}

スロットリング

高頻度イベントはトリガーされますが、n秒間に1回しか実行されないので、スロットリングは関数の実行頻度を薄めます。アンチスロットリングとの違いは、各関数呼び出しが最後に実行されるのに対し、アンチスロットリングは最後にしか実行されないことです。

function throttle(fn, wait) {
 let onOff = true;
 
 return function() {
 if (!onOff) {
 return;
 }
 
 onOff = false;
 
 setTimeout(() => {
 fn.apply(this, arguments);
 
 onOff = true;
 }, wait)
 }
}
Read next

ネイル申請操作プロセス

I. 承認プロセスを残してください: 最初のステップ をクリックします; 第二のステップ 第二ステップ:**"インテリジェントな内部および外部の精勤 "の "休暇 "**を検索します; 第三ステップ 休職 "をクリックします。 内容を正直に記入してください; ステップ4 承認者の追加 提出」をクリックします。

Mar 1, 2020 · 2 min read