throttle debounce
質問を出す
最近はRxSWIFTを使ったアイテムによく触れ、Rxという拡張を使っていますが、UIではおなじみのRxCocoaを使っていると同時に、throttle、debonseを使っていることもあり、それを整理するために文章を書きました
トラブルシューティング
通常、throttleとdebonseはUITextFieldまたはUIButtonに使用されますが、一つ一つ理解してみましょう.
1. debounce
->debonseパラメータ取得タイマとスケジューラの2種類
->タイマー指定時間、スケジューラ使用
->debonseイベントが発生したときにタイマーが初期化されます.これはどういう意味ですか?最初のイベントが解放された後、タイマーは指定された時間を流し、その時間が経過した後、再びイベントを受信することができます.その前に、どのイベントを解放しようとしても出力されません
つまり、debonseはタイマの最後のイベントのみを解放します.
2. throttle
->throttleタイマ時間、最新、schedulerをパラメータとして受け入れる
->ここでは、最新の真偽によって釈放の仕方が違う
->throttleイベントの解放時にタイマーは初期化されません
1.trueが最新の場合
debonseがどのようにイベントを解放しても、タイマが通過しなければイベントを再受信できない特性を考慮し、API呼び出しやUItextFieldにquery文を書いてネットワークに接続すると効率的になります.
throttleがdebonseのようにタイマの初期化を続けることができない特性を考慮すると、UI Buttonにおけるtapの繰返し防止に用いることができ、もちろんdebonseとしてもよいが、高速トリガが必要なUI Buttonにおいてタイマの初期化を継続する特性は非効率である
最近はRxSWIFTを使ったアイテムによく触れ、Rxという拡張を使っていますが、UIではおなじみのRxCocoaを使っていると同時に、throttle、debonseを使っていることもあり、それを整理するために文章を書きました
トラブルシューティング
通常、throttleとdebonseはUITextFieldまたはUIButtonに使用されますが、一つ一つ理解してみましょう.
1. debounce
->debonseパラメータ取得タイマとスケジューラの2種類
->タイマー指定時間、スケジューラ使用
->debonseイベントが発生したときにタイマーが初期化されます.これはどういう意味ですか?最初のイベントが解放された後、タイマーは指定された時間を流し、その時間が経過した後、再びイベントを受信することができます.その前に、どのイベントを解放しようとしても出力されません
つまり、debonseはタイマの最後のイベントのみを解放します.
2. throttle
->throttleタイマ時間、最新、schedulerをパラメータとして受け入れる
->ここでは、最新の真偽によって釈放の仕方が違う
->throttleイベントの解放時にタイマーは初期化されません
1.trueが最新の場合
-> 이는 최신값을 받겠다는 의미로 타이머가 흐르는 도중에 어떠한 이벤트를 방출할 경우에 그에 대한 최신값을 타이머시간에 도달한 이후에 한번 더 방출하게된다
2.falseが最新の場合-> true일때와는 다르게 타이머시간이 흐르는 도중에 이벤트를 방출해도 타이머시간이 도다를때 따로 최신값을 방출하지않는다
使用例debonseがどのようにイベントを解放しても、タイマが通過しなければイベントを再受信できない特性を考慮し、API呼び出しやUItextFieldにquery文を書いてネットワークに接続すると効率的になります.
throttleがdebonseのようにタイマの初期化を続けることができない特性を考慮すると、UI Buttonにおけるtapの繰返し防止に用いることができ、もちろんdebonseとしてもよいが、高速トリガが必要なUI Buttonにおいてタイマの初期化を継続する特性は非効率である
Reference
この問題について(throttle debounce), 我々は、より多くの情報をここで見つけました https://velog.io/@dlrjswns135/throttle-debounceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol