メールがデータベース内にあるかどうかを確認するためにAJAX GETを実行する入力ボックスがあります。私は単に電子メールアドレスをチェックしており、それがデータベース内にあればtrue/else falseを取得します。したがって、返品に応じて、私はティックまたはクロスイメージを表示します。keypressでajaxコールを遅らせる方法は?
$.ajax({
url: '/api/user/emailaddress/' + emailAddress,
type: 'GET',
dataType: 'json',
success: function(data) {
if (data===true) {
$(".email-address-validator").removeClass("success");
$(".email-address-validator").addClass("error");
}
}
});
入力ボックスフィールド内でキーが押されるたびに、これが呼び出されます。私が考えている問題は、誰かがこのファイルを見て、フィールド上でAJAX GETリクエストを行っていることを確認して、その特定の入力ボックスでキーを押し続けているだけである場合があるということです。
Q:これで約5秒間、タイムアウトをどのように設定できますか?ユーザーは単にボックスをスパムし続けるだけではありませんか?
http://stackoverflow.com/a/3015351/1385672 - タイムアウトを設定/解除する方法の例です。あなたはあなたのkeyup関数にそれを組み込み、タイムアウト関数の中であなたのajax呼び出しを入れてもいいです –
ありがとうございます。 – DennisTurn
タイムアウトクライアント側を追加しても、悪意のあるユーザーがリクエストを単独で実行してサーバーを迷惑メールにすることはありません。 サーバーサイドロジックも追加する必要があります。 –