次のスクリプトがあります。
$(document).ready(function(){
$('#input').keyup(function(){
sendValue($(this).val());
});
});
function sendValue(str){
$.post("ajax.php",{ sendValue: str },
function(data){
$('#display').html(data.returnValue);
}, "json");
}
このスクリプトはインスタント検索タイプのシナリオ (Google など) で使用されるため、ユーザーがテキスト ボックスに入力すると、かなりの数の選択要求がサーバーに送信されます (ただし、既に pconnect を使用しているため、データベース接続が繰り返されることはありません)。
これは非常に大規模なデータベースであり、すべてのキーストロークが AJAX リクエストとして送信されるため、保留中のリクエストのバックログが大量に発生します。新しいリクエストを送信するたびに、以前のすべてのリクエストを停止/キャンセルしたい(返送されていない場合)。
私は見てきましたxhr.abort()
が、まだ送信されていないリクエストを停止するだけだと確信しています(サーバーに処理を停止するように指示するのではなく)。これはおそらく問題ありませんが、コードに実装する方法がまだわかりません。