ユーザーの入力内容に基づいて結果を返す Web サイトのライブ検索を構築しています。ユーザーが入力を終了したときにのみリクエストを送信したい。
タイマーを使用していくつかの実装を試してみましたが、underscore.js の debounce メソッドも使用しましたが、常に同様の結果が得られているようです。
入力している間、入力が完了するまでリクエストが遅れます。しかし、すべての入力がキューに入れられたかのように起動するようです。たとえば、「bikes」と入力すると、結果は次のように返されます。
b
bi
bik
bikes
そのため、検索結果のストリームが得られます。
これは、アンダースコアjsを使用した現在の実装です
$('#search_term').on('keyup', _.debounce(function (e) {
$.ajax({
type: "GET",
url: "quicksearch.php",
data: { search_term:$('#search_term').val()},
success: function(msg){
$('#quick_search_results').html(msg).slideDown();
}
});
}, 100));
誰にもアイデアはありますか?