1

「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呼び出しの数を注意深く制御しようとしましたが、成功しませんでした。私はこの問題を何日も解決しようとしてきましたが、これについて助けていただければ幸いです。よろしくお願いします。

4

1 に答える 1

0

私の解決策は、mysqlクエリにLIMITを設定することでした。これは、クエリに100の結果が必要なかったためですが、ほんの一握りでした。これにより、AJAXによる速度が大幅に向上しました。

于 2012-12-20T16:45:21.200 に答える