[React]DeboringとThrottle
Debounce
前のイベントを呼び出した後、指定した時間後にイベントを実行します.Debounce
は、自動完了機能を実現するために有効である.
Debonseのinputラベルが適用されていません
上の画像から、入力するたびにイベントが発生し、計8回出力されていることがわかります.要求がコンソールに印刷されるのではなく、サーバに送信されるAPI Call要求であれば、わずかなユーザのみが使用すれば問題はありませんが、複数のユーザが接続して要求をサーバに送信している場合は、問題は言うまでもありません.
サンプルコード
lodashライブラリが提供するdebonseは、実行する関数と時間(ms)をパラメータとして使用します.import _ from 'lodash'
const DebounceExample = () => {
const callApi = () => {
// call api
}
const throttleCallApi = _.debounce(callApi, 100);
}
debonseのinputラベルを適用する
その結果,最後の入力が終了すると100ミリ秒後に出力されることが分かった.
Throttle
指定した時間内に発生するすべてのイベントをブロックし、1つのイベントのみを実行します.
throttleの入力ラベルが適用されていません
throttle
が適用可能な例については、Infinite Scrollが考えられる.通常、Infinite Scrollでは、AjaxリクエストがonScroll
イベントに割り当てられます.ただし、この場合、Ajaxリクエストはスクロールするたびに発生します.
これはサーバ/クライアントにとって負担になるため、Ajaxリクエストの数を減らすことを考慮する必要があります.
この場合、throttle
を使用することが好ましい.
Example
import _ from 'lodash'
const ThrottleExample = () => {
const callApi = () => {
// call api
}
const throttleCallApi = _.throttle(callApi,1000);
}
throttleの入力ラベルが適用されました
画像から見ると、同じ「throttle」という言葉が入力されていても、100 msごとに2回実行されます.
DeboringとThrottleの違い debounce
とthrottle
は運転時間の最大の差と言える.
dbオンスは、最後の入力が終了した後に1時間設定する必要がありますが、throttleは最初のイベントが発生した後に設定した時間後に実行されます.
これらの実行ポイントの違いは、実現したい機能に応じて区別して使用する必要があるため、理解と使用が重要です.
Reference
この問題について([React]DeboringとThrottle), 我々は、より多くの情報をここで見つけました
https://velog.io/@albaneo0724/ReactDebounce와-Throttle
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import _ from 'lodash'
const DebounceExample = () => {
const callApi = () => {
// call api
}
const throttleCallApi = _.debounce(callApi, 100);
}
指定した時間内に発生するすべてのイベントをブロックし、1つのイベントのみを実行します.
throttleの入力ラベルが適用されていません
throttle
が適用可能な例については、Infinite Scrollが考えられる.通常、Infinite Scrollでは、AjaxリクエストがonScroll
イベントに割り当てられます.ただし、この場合、Ajaxリクエストはスクロールするたびに発生します.これはサーバ/クライアントにとって負担になるため、Ajaxリクエストの数を減らすことを考慮する必要があります.
この場合、
throttle
を使用することが好ましい.Example
import _ from 'lodash'
const ThrottleExample = () => {
const callApi = () => {
// call api
}
const throttleCallApi = _.throttle(callApi,1000);
}
throttleの入力ラベルが適用されました
画像から見ると、同じ「throttle」という言葉が入力されていても、100 msごとに2回実行されます.
DeboringとThrottleの違い debounce
とthrottle
は運転時間の最大の差と言える.
dbオンスは、最後の入力が終了した後に1時間設定する必要がありますが、throttleは最初のイベントが発生した後に設定した時間後に実行されます.
これらの実行ポイントの違いは、実現したい機能に応じて区別して使用する必要があるため、理解と使用が重要です.
Reference
この問題について([React]DeboringとThrottle), 我々は、より多くの情報をここで見つけました
https://velog.io/@albaneo0724/ReactDebounce와-Throttle
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について([React]DeboringとThrottle), 我々は、より多くの情報をここで見つけました https://velog.io/@albaneo0724/ReactDebounce와-Throttleテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol