Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

javascriptデバウンス関数を説明しますか?


デバウンス関数は、関数が起動できる速度を制限します。たとえば、サーバーにクエリを実行するオートコンプリートテキストバー。キーストロークごとにサーバーにクエリを実行すると、ネットワークとメモリに不必要な影響を及ぼします。代わりにできることは、特定の時間内に行われるこれらの呼び出しの数を制限することです。

実際の関数を引数として取り、レート制限された(スロットルされた)方法で実行する独自のデバウンス関数を作成できます。

const debounce = (cb, time) => {
   let timeout;
   return function() {
      const wrapperFunc = () => cb.apply(this, arguments);
      clearTimeout(timeout);
      timeout = setTimeout(wrapperFunc, time);
   }
}

この関数は、2つの引数のコールバックとそれが呼び出される間隔を取ります。たとえば、APIへの最初の呼び出しが1ミリ秒で、時間を250ミリ秒に設定したとすると、この関数が何度呼び出されても、新しい呼び出しはAPIに対して行われません。この呼び出しを使用して、独自の関数呼び出しを置き換えることができます。


  1. JavaScriptの「コンストラクター関数ではない」エラーを説明しますか?

    コンストラクターではないコンストラクターとしてオブジェクトまたは変数を使用すると、コンストラクターではない関数エラーが発生します。 以下は、JavaScriptのコンストラクター関数エラーではないためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-sca

  2. JavaScriptでの関数の借用。

    call()、apply()、bind()は、JavaScriptのメソッドを借用するために使用されます。 以下は、JavaScriptでメソッドを借用するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &