問題タブ [debouncing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1165 参照

javascript - Javascript遅延イベント

handleScrollウィンドウのスクロール位置が変わったときに呼び出す必要のある関数があります。これがそのためのコードです

handleScrollしかし、問題は、上記のコードが頻繁に呼び出されてしまうことです。ユーザーが200ミリ秒スクロールを停止した後にのみhandleScrollが呼び出されるように、上記のコードを変更するにはどうすればよいですか?

0 投票する
13 に答える
145097 参照

jquery - 入力/書き込みを停止した後、入力テキストでイベントをトリガーするにはどうすればよいですか?

入力テキストボックスへの文字の入力を(入力中ではなく)停止した直後にイベントをトリガーしたい。

私は試しました:

ただし、この例では、入力したすべての文字に対してタイムアウトが発生し、20文字を入力すると、約20のAJAX要求が発生します。

このフィドルでは、AJAXの代わりに単純なアラートを使用して同じ問題を示します。

これに対する解決策はありますか、それとも私はこれに悪いアプローチを使用していますか?

0 投票する
0 に答える
227 参照

jquery - jQueryのデバウンスされたスライドショーはスライドをスキップします

個人のホームページ用のプラグインを作成しました。このプラグインは、一連の要素をスクロールして、各要素のoffsetTopにスナップすることになっています。requestanimationframe
を 使用してスクロールイベントをデバウンスしていますが、スライドがスキップされることがあり、その理由がわかりません。さらに、ChromeとSafariでは、window.pageYOffsetが0より小さく、ドキュメントの高さよりも大きくなる可能性があるという問題があります。これは、これらのブラウザーがMac(タッチパッドを使用)で使用している何らかの緩和のためです。これをどのように処理しますか?

コードは次のとおりです。

誰かが助けてくれることを願っています。ありがとう。

0 投票する
2 に答える
1198 参照

system.reactive - Rx デバウンス入力

入力ストリームをデバウンスする必要があります。

状態 1 の最初の発生時に、5 秒間待機し、最後の状態も 1 であったかどうかを確認する必要があります。信号が安定している場合のみです。

以下は、不安定な信号の例です。

バッファを使用してみましたが、バッファには開始点が固定されており、最初のイベントから 5 秒間待機する必要があります。

0 投票する
3 に答える
39074 参照

c - C ボタンが押されたときに 1 回タスクを実行するようにプログラムする (ラッチ)

私はcとRaspberry Piに比較的慣れておらず、簡単なプログラムを試しています. 私が望むのは、ボタンが押されたときに一度 printfs され、ボタンが押されたままになっていても (一種のラッチ)、ボタンが再度押されるまで再度 printf しないことです。2番目のwhileループを追加するとこれが修正されるのではないかと思いましたが、それでもボタンの押下が検出されないことがあります。

0 投票する
1 に答える
215 参照

javascript - コンテンツ変更時の HTML ドキュメントの高さのデバウンス

ビューポートが 100×100 (幅×高さ)で、ドキュメントが空で、スクロール位置が (0,0) (x,y) であるとします。

  1. body.appendChildサイズ 100×200 の要素 A
  2. 手動で (0,100) までスクロールします
  3. 一部の JavaScript は A と s B を削除するようになりましたbody.appendChild(100×50)
  4. ブラウザーは、ドキュメントの高さが合計で 50 であることを検出し、(0,0) にスクロールして戻ります。
  5. しばらく時間が経過します (~150ms)
  6. 一部の JavaScript は B とbody.appendChilds C を削除します (再び 100×200)

現在、ブラウザはまだ 0,0 でスクロールされています。カスタム定義のしきい値 (この場合は ~150ms) で (4) が発生しないようにするために、ソリューション/ライブラリ/jQueryPlugin (3 と 6 に挿入する必要があるものは何もない) を探しています。

0 投票する
2 に答える
12171 参照

javascript - デバウンスが機能しない

http://jsfiddle.net/5MvnA/2/およびコンソールを参照してください。

F は K より少ないはずですが、F はまったくありません。

デバウンスコードを入手しました

ここからhttp://remysharp.com/2010/07/21/throttling-function-calls/

私が間違っているかどうかを確認してください。

0 投票する
3 に答える
9744 参照

javascript - jQuery/javascriptでイベントの処理をX秒に1回に制限する方法は?

急速に発生するイベントの場合、イベントの処理を最大Xkeypressに 1 回に制限したいと考えています。

私はすでにイベント処理に jQuery を使用しているため、jQuery ベースのソリューションが推奨されますが、バニラ Javascript も問題ありません。

  • このjsfiddleは、処理を制限することなくキープレスが急速に発火することを示しています

  • この jsfiddleは、バニラ JS で処理を 0.5 秒に 1 回に制限する実装を使用します。setTimeout()

私の質問は

  1. jQueryにはこれを行う組み込みの方法がありますか? ドキュメントには何も表示されません.on()

  2. そうでない場合、 2番目のjsfiddleの例で使用したよりも、バニラJSでこれを行うためのより良いパターンはありますか?

0 投票する
3 に答える
2917 参照

java - 同じメソッドが複数回呼び出された場合のメソッド呼び出しのキャンセル

ここで説明しているものにはおそらく名前があると思いますが、私は知りません。だから私の最初の質問は、このテクニックの名前を知ることです.

以下に例を示します。Web ページにライブ検索を実装しているとします。ユーザーが検索ボックスに入力するたびに、新しい検索クエリが起動され、結果が可能な限り頻繁に更新されます。実際に必要な数よりもはるかに多くのクエリを送信することになるため、これは愚かなことです。2 ~ 3 文字ごとに 1 回、または多くても 100 ミリ秒ごとに 1 回リクエストを送信すれば、おそらく十分です。

したがって、キーが入力された直後にクエリが実行されるようにスケジュールし、計画されているが実行されていないクエリがまだある場合は、それらは廃止されているためキャンセルするという手法があります。


より具体的には、Java でこの問題を解決するための特定のパターンまたはライブラリはありますか?

私は Swing アプリで問題を解決する必要があり、キャンセルできる ScheduledFutures を返す ExecutorService を使用しました。問題は、「バッファリング」したいメソッド呼び出しごとに Runnable を手動で作成し、各 Future を追跡してキャンセルしなければならなかったことです。

私はこのようなものを実装した最初の人ではないと確信しているので、再利用可能なソリューションがどこかにあるはずです? 注釈とプロキシを備えたおそらくSpringの何か?