反応する.ディベートと絞り



導入
プロのWebアプリケーションを構築するために、最適化とパフォーマンスは、気にする必要がある2つの重要なことです.
多くのヒントやテクニックは、Webアプリケーションのパフォーマンスを向上させるために使用されているなどのように、Debugingとthrottling.
それはデビワニングと絞りになると、開発者はしばしば混乱する.
このブログの中で、これらの2つのテクニックを詳細にスローします.しかし、それはヴァニラJavaScriptまたは他のJavascriptフレームワークのための同じ原則です.

討論
Devouncingに深くダイブする前に、ユーザーが任意のボタンをクリックせずに何かを検索できるようにする検索ボックスを実装する簡単で普通の例を見てみましょう.

問題は、49457914円は非常に高価であり、これは多くのHTTPリクエストを同時に受信するため、サーバーに悪いです.

この問題を解決するためには,1 . 5,466,914 cmの値を用いる必要がある.

負債機能の定義と実施
最後の呼び出しから特定の時間が経過した後に、討論関数は呼ばれます.

デフラグは、引数として、コールバック関数とMSの遅延として引数として使用される高機能を定義することです、その後、タイマーが完了した後、コールバックを実行するタイマーを設定する新しい関数を返します.
ここでの秘密は、Dedounce機能から返された関数のすべての呼び出しが、前のタイマーをキャンセルします.
このアプローチでは、コールバック関数が最後の呼び出しで引数として渡された後に一度だけ実行されることを確認できます.

我々の例に対する討論機能の実装


結果


絞り
我々は、マウスの位置に基づいていくつかの操作を行うには、バックエンドサーバーにデータを送信し、ユーザーのマウスの動きを追跡するために我々のアプリのイベントリスナーを持っていると仮定しましょう.

我々がこの解決策に固執するならば、それが短い期間で100の要求を受けるので、我々はダウンバックエンドサーバーで終わります.

ほんの少しの数秒での43457914📛📛📛.
この問題を解決するためには、APIコールの数を制限する必要があり、このような問題は、75457914アンペアで解決できます.

スロットル機能の定義と実装
スロットル関数は特定の間隔で別の関数の呼び出し回数を制限するメカニズムです.指定された時間間隔内の追加の呼び出しは無視されます.

スロットル関数は2つの引数を受け付けます.これはスロットルの関数であり、スロットル間隔のmsで遅延し、スロットル関数を返します.

例にスロットル機能を実装する


結果


結論
ディベートとthrottlingは2つの驚くべきテクニックです、彼らはあなたのウェブアプリケーションのパフォーマンスをもう一つのレベルに増やすことができます.
それらのうちの1つを選ぶことはケースに依存します.
ギタブ・レポ