「LIKE」クエリを使用してデータベースにクエリを実行することにより、AJAXを使用して検索候補を生成しています。ユーザーが入力フィールドにテキストを入力すると、結果が返されます。
私がそれを設定する方法は次のとおりです。
JQuery:
var timer;
$(".prod-name-input").keyup(function(){
var self = this;
clearTimeout(timer);
searchword = self.value;
timer = setTimeout(function(){
$(".smart-suggestions").load('invoice-get-data.php?searchword=' + self.value);
},300); //onkeyup event works with a 300 millisecond delay
});
問題は、たとえば6文字を含む単語を入力した場合、完全な単語のAJAX結果が入力されるまでに少なくとも数秒かかることです。ユーザーがいるまでに、AJAX関数への呼び出しが複数あるようです。テキストフィールドへの単語の入力が完了しました(onkeyupイベントのため)。mySQLクエリでvar_dumpを使用して何が起こっているかを確認しました。これは、完全な検索ワードがクエリされるとすぐに表示されます。これは通常、非常に遅く、メソッドを使用すると数秒かかり、結果が返されます。ほぼ瞬時に、
私の目標は、現在の極端なラグを回避することで、検索候補をほぼ瞬時に表示することです。これにより、ユーザーが入力フィールドにテキストを入力するとすぐに、検索候補が表示されます。応答時間を改善するためにajax呼び出しの数を注意深く制御しようとしましたが、成功しませんでした。私はこの問題を何日も解決しようとしてきましたが、これについて助けていただければ幸いです。よろしくお願いします。