ホームページ >ウェブフロントエンド >jsチュートリアル >ユーザー入力中の過剰なアクションを防ぐためにキーアップ イベント ハンドラーを遅らせるにはどうすればよいですか?

ユーザー入力中の過剰なアクションを防ぐためにキーアップ イベント ハンドラーを遅らせるにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-12 22:36:18546ブラウズ

How Can I Delay Keyup Event Handlers to Prevent Excessive Actions During User Typing?

ユーザーの入力停止のためのキーアップ イベント ハンドラーの遅延

対話型ユーザー インターフェイスでは、多くの場合、ユーザーが入力を終了した後にのみアクションを実行することが望ましいです。データを入力しています。各キーアップに対して AJAX クエリを実行する検索フィールドを考えてみましょう。デフォルトでは、これにより、入力文字列が最も短い場合でも、多数の検索リクエストが発生します。

この過剰なクエリを防止し、ユーザー エクスペリエンスを向上させるために、指定された期間の後にのみアクションを実行する遅延メカニズムを実装できます。非活動性の。ネイティブのキーアップ関数には遅延機能が組み込まれていませんが、遅延と呼ばれる単純な関数を使用して目的を達成できます。

遅延関数は 2 つの引数を取ります:

  • コールバック: 遅延期間の後に実行する関数。
  • ms: の遅延期間ミリ秒 (オプション、デフォルトは 0)。

遅延関数は基本的にスロットルを作成し、コールバックがあまりにも頻繁に呼び出されるのを防ぎます。サンプル実装は次のとおりです。

function delay(callback, ms) {
  var timer = 0;
  return function() {
    var context = this, args = arguments;
    clearTimeout(timer);
    timer = setTimeout(function () {
      callback.apply(context, args);
    }, ms || 0);
  };
}

この遅延を検索フィールドに適用するには、次のように使用できます。

$('#input').keyup(delay(function (e) {
  // Perform your search logic here
}, 500));

ここでは、検索ロジックは 500 ミリ秒のみ実行されます。最後のキーアップ イベントの後、よりユーザー フレンドリーなエクスペリエンスが提供されます。

以上がユーザー入力中の過剰なアクションを防ぐためにキーアップ イベント ハンドラーを遅らせるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。