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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-14 20:44:11525ブラウズ

How Can I Delay a Keyup Handler to Prevent Excessive AJAX Requests During User Typing?

ユーザーの入力停止のために .keyup() ハンドラーを遅延します

検索フィールドで、キーを押すたびに即時 AJAX 検索が行われる可能性があります。過剰なトラフィック。これを軽減するには、遅延を実装して、ユーザーが入力をやめたときにのみ検索を許可することが望ましいです。

これを実現するために、提供されているコード スニペットでは、lay() 関数を利用します。この関数は、指定された時間の経過後、またはサイズ変更などの急速に発生するイベントでコールバックを実行します。使用方法は次のとおりです:

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);
  };
}

// Example usage:

$('#input').keyup(delay(function (e) {
  console.log('Time elapsed!', this.value);
}, 500));

この例では、ユーザーが #input フィールドへの入力を停止したときにコンソール ログの実行を 500 ミリ秒遅らせるために、lay() 関数が使用されています。これにより、ユーザーが入力を完了した後にのみ AJAX 検索が実行されるようになります。

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

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