問題タブ [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 投票する
1 に答える
235 参照

jquery - Ben Alman の jQuery Debounce をフォーマットする方法

Ben Alman の jQuery Debounce プラグインの構文に問題があります。ある形式では期待どおりに機能しますが、別の形式では必要です。

エラーをスローせずにこれを機能させるにはどうすればよいですか?

ありがとう!!

__

動作する他の形式は次のとおりです。

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

python - pigpio ライブラリとデバウンス

http://2.bp.blogspot.com/-DlpGa_yyJ0Y/U ... iagram.pngに似た単純なレーザー ビーム アラーム回路を使用してい ます。

ブザーの代わりに 4k7 抵抗器を使用してこの回路から Pi に入力し、ビームが遮られたときに画像をキャプチャしました。pigpio ライブラリのコールバック関数を使用して、画像を次のようにキャプチャしました。

しかし、問題は、単一の障害物に対して複数の画像をキャプチャすることがあるということでした。デバウンスがこの種の状況の解決策であることがわかりました。pigpio ライブラリでデバウンスを使用する方法。

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

javascript - デバウンス関数内で requestAnimationFrame を使用することは良い考えですか?

これは、 に対する私の理解度のチェックですrequestAnimationFrame。ウィンドウのサイズが変更されるたびに DOM インタラクションを行っており、ブラウザーに過負荷をかけたくないため、デバウンス機能が必要です。典型的なデバウンス関数は、渡された関数を間隔ごとに 1 回だけ呼び出します。間隔は通常、2 番目の引数です。多くの UI 作業では、ブラウザが過負荷にならない最短の時間が最適な間隔であると想定しています。それがまさに何requestAnimationFrameをするかだと私には思えます:

上記のコードは上記のdebounceリンクからの直接のぼったくりですが、setTimeout の代わりに requestAnimationFrame が使用されています。私の理解では、これは渡された関数をできるだけ早くキューに入れますが、ブラウザーが処理できるよりも速く着信する呼び出しはドロップされます。これにより、可能な限りスムーズな対話が生成されます。私は正しい軌道に乗っていますか?それとも私は誤解していrequestAnimationFrameますか?

(もちろん、これは最新のブラウザーでのみ機能しますが、setTimeout にフォールバックする requestAnimationFrame の簡単なポリフィルがあります。)

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

javascript - ng-keypress のデバウンス

angularでキープレスイベントをデバウンスするためのポインタはありますか? 私はそれをデバウンスさせることができません。そして、押されたキーを出力するために $log.debug を使用していて、それが起動する回数がデバウンス率ではないので、私は確かに知っています。

私は次のように設定しました:

および私のコントローラーで(このインスタンスでデバウンスメソッドを利用するためにunderscore.jsを含めたわけではありません):

事前にご協力いただきありがとうございます。

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

javascript - Ember オブザーバーを時間指定のキュー ドレインで使用する

放送オーバーレイ用の一種の「通知システム」を構築しようとしています。基本的に、イベントをキャッチして配列に追加し、その配列を監視する関数を実行します。イベントが追加されるたびに、一定時間かかるアニメーションを実行し、それを配列から削除してから、次のアニメーションに移動します。

それdebounceが私をそこへの道のりの一部にすることがわかりました。アニメーションの実行中に任意の数のイベントを追加でき、キューを空にすることができます。

問題は、最初のイベントが処理される前に、指定された時間 (この場合は 5 秒) 待たなければならないことです。ただし、デバウンスを即時に設定すると、最初のイベントがすぐに処理されるという点ですべてが壊れますが、それ以外は処理されません。

これを修正するために移動する必要があると感じていますが、debounceその解決策が何であるかはわかりません。

説明が必要な場合はお知らせください。

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

ruby-on-rails - Rails - ユーザーごとに 1 つの同時コントローラー ヒットのみを保証する

tl;dr - 同じユーザーからの別の同時要求が入ったときに、特定の Rails コントローラー アクションの実行を確実に停止する方法はありますか?

私の Rails/Angular アプリでは、クライアント側から Foursquare API にリクエストを送信します。それらは認証される必要があり、認証情報は安全なままにしておく必要があるため、これらの要求を自分のアプリで Rails コントローラーを介して渡します。

このアーキテクチャの詳細な説明については、この半関連の質問を確認してください。

そこで詳しく説明されているように、私の懸念は、この内部コントローラーへの各要求がサーバー時間を消費することです (そして、Heroku では dyno を結び付けます)。アクションをできるだけ速くしようとしましたが、サーバーが拘束される量を減らしたいと思います。

サーバーが拘束される量は、私が行っている検索のリアルタイム性によって悪化します。自動提案を許可したかったので、入力などではなく、ユーザーの入力時にリクエストがサーバーに送信されます。

ユーザー入力をデバウンス (0.4 秒) しているため、ユーザーが入力を一時的に停止するまでリクエストは行われません。ただし、ユーザーが入力中に数回一時停止し、そのたびにリクエストが送信されると、すぐに複数の dyno が使用される可能性があります。

より具体的には、Foursquare からの API 応答時間が約 1.3 秒であると仮定して、次のシナリオを想像してください。クエリ。これにより、3 つの個別のリクエストが送信されますが、次のリクエストが来る前に返される可能性のあるリクエストがないため、これらのすべてを異なる dyno で処理する必要があります。

これは、大量の費用がかかるか (多数のユーザーがいる場合、同時実行タイムアウトから保護するために多数の dyno が必要になることを意味します)、ユーザーの前で非常に面倒な待機が発生する可能性があります。

したがって、新しいリクエストを送信する前に、そのユーザーからの Foursquare への実行中のリクエストを終了することにより、本質的にサーバー側で遡及的デバウンスを行うことができれば素晴らしいと思います. つまり、上記の具体的な例では、3 つの要求が開始されたときに、最後の要求のみが返されることを意味します。これは、新しい要求が入ったときに最初の 2 つが途中で破棄されるためです。

sessionリクエストが実行されたときに true になる変数を for each に格納することを考えていました。その後、トリガーされた場合、次のリクエストは送信されません。しかし、それは実際には私が望んでいることとは正反対です。なぜなら、新しいリクエストが来たときに元のリクエストをキャンセルしたいからです。後者からそのリクエストにアクセスする方法がわかりません。

これは複雑に感じるので、不可能かもしれないと推測しています (特に、各コントローラーアクションが新しいコントローラーインスタンスによって応答されるため) が、同じアクションが同じユーザーによって再度ヒットされた場合にコントローラーアクションをキャンセルする方法を知っている人はいますか?最初のリクエストが解決されている間?

ありがとう!

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

button - ボタンを使用して速度の異なる VHD クロック ジェネレーター

私は VHDL を初めて使用し、現在 2 つの異なるクロック速度を生成するクロック ジェネレーターに取り組んでいます。低速と高速の speed_status 間の切り替えを除いて、すべてが機能しています。現在の設定速度を変更するために複数回押す必要がある場合があるため、「速度ボタン」に問題があるようです。「リセットボタン」は常に期待どおりに機能しています。VHDL コードに何か問題がありますか? または何らかのソフトウェア デバウンスを追加する必要がありますか? その場合、リセット ボタンが機能するのはなぜですか? また、クロック ジェネレーターのどの部分 (コード/ロジック) を改善できるかアドバイスをいただけますか?

Xilinx ISE 13.4 と Xilinx Virtex 5 ベースの XC5VLX110T を使用しています。