問題タブ [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 に答える
88 参照

javascript - Javascriptキーイベント - キーイベントが繰り返される場合にのみデバウンスしますか?

使用事例

  1. 個人またはグループのリストがあります (FB メッセンジャーのように) (左ペイン)
  2. 人を切り替えると、メッセージを読み込みます (API 呼び出し)。
  3. 下向き矢印をすばやく押すと、各人に対して API 呼び出しを行う代わりに、一時停止して待っている人だけを読み込みます。
  4. 現在、これを達成するために 300ms のデバウンスを行っています。

    /li>

問題

  1. Message1 にいるとき - M1 の詳細が読み込まれます
  2. キーをすばやく押すと、M2 がロードされ、次のメッセージでデバウンスが発生します)

この M2 負荷を回避したい。同じフローでデバウンスと非デバウンスを混在させることさえ可能かどうかはわかりません

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

angularjs - Angular デバウンスを使用するときにナビゲーションによるデータ損失を防ぐ方法は?

最近、Angular のデバウンス機能に慣れてきました。デバウンスの使用例は、ユーザーが入力した内容を (サーバー側で) 保存したいが、キーストロークごとに HTTP 要求を行いたくない場合です。フォームにデバウンス値 500 を指定すると、ユーザーが入力を 0.5 秒間停止したときに、[保存] ボタンをクリックしなくてもデータを保存できます。これはとても便利です。

しかし、私が発見した欠点があります。特に、デバウンス値が高い場合 (ペイロードのサイズによっては高くしたい場合があります)、データが保存される前にユーザーがページから移動する可能性があります。

上記の例では、ユーザーは「Hello!」と入力し、0.5 秒待ってから「はじめまして!」と入力し、デバウンス期間が終了する前に別のページに移動するか、ブラウザーを閉じます。(特に、テキスト入力がナビゲーション コントロールの近くにある場合、これは大げさではありません。) この場合、"Hello!" です。助かるけど「はじめまして!」迷う。

ページから離れたときに不快な Javascript を起動するページ (通常は広告でいっぱいのページ) を見たことがあります。そのため、Angular には、ユーザーがページを離れたときにデバウンス期間が切れたときに起こるであろうことを行う機能があるかどうか疑問に思っていました。 .

もちろん、停電などの例外的な状況では、何があってもデータが失われることは承知しています。

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

javascript - Jasmine を使用して AngularJS でデバウンスされた関数をテストしても関数が呼び出されない

アンダースコアのデバウンスを使用するサービスにメソッドがあります。

そのメソッド内には、別のサービスのメソッドへの呼び出しがあります。別のサービスが呼び出されることをテストしようとしています。

デバウンスされたメソッドをテストしようとすると、さまざまなサービスのメソッドが呼び出されることはなく、ジャスミンは次のように失敗します。

「スパイ aMethod が呼び出されることが予想されます。」

私はそれが呼び出されているという事実を知っています(クロムのコンソールにログを記録します)、期待がすでに失敗した後に呼び出されました。

したがって...(できれば)Sinonまたは別の依存関係を追加せず、
ボーナスポイント*をソリューションに与えると、_.debounceを$timeoutに変える必要はありません...

どうやって?

テスト:

なぜ AngularJS Testing の神々は私を見捨てたのですか?

* stackoverflow で実際にボーナス ポイントを付与する方法がわかりませんが、可能であれば付与します。

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

javascript - フルページスクロール

スムーズな全ページスクロールを実装する必要があります。私はすでにこのページでそれをしました:

http://superhostitel.cz/sluzby

しかし、ホイールでさらにスクロールすると、より多くのページがスクロールされます。1 ページだけスクロールするように設定するにはどうすればよいですか?

私のコード:

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

go - チャンネル アクティビティが落ち着いて何かがトリガーされるのを待つにはどうすればよいですか?

バースト書き込みを受信するチャネルがあります。アクションをトリガーする前に、チャネルでの送信のバーストが終了するまで待ちたいと思います。

私はこの要点intervalを見てきましたが、バッファにデータがある場合は毎回出力を送信します:

私の場合、出力をトリガーまたは送信する前に、このバーストの入力チャネルで送信されるデータがなくなるまで待ちたいと思います。

どうすればこれを達成できますか?

0 投票する
12 に答える
93288 参照

reactjs - React Input による Lodash デバウンス

入力 onChange イベントから呼び出される検索機能に、lodash によるデバウンスを追加しようとしています。以下のコードは、「関数が期待されています」という型エラーを生成します。これは、lodash が関数を期待しているためです。これを行う正しい方法は何ですか?すべてインラインで実行できますか? これまでSOでほぼすべての例を試しましたが、役に立ちませんでした。