1

jQuery / AJAX を使用して autosuggest(autocomplete) 機能を開発しています。問題は、これに使用する MySQL テーブルに 30,000 レコードがあり、サーバーの負荷が高いことです。そのため、訪問者がボタンを押すたびに MySQL テーブルにクエリを実行するのではなく、ユーザー セッションごとに 1 回クエリを実行したいと考えています。これを達成するオプションはありますか?30,000 件のレコードを一度キャッシュまたは取得して、どこかに保存しますか?

ありがとう、

ゾルカ

4

2 に答える 2

0

キャッシュ オプションを使用します。ただし、ユーザーが以前の値を入力すると機能します。そうしないと、サーバーにヒットします。

$(function() {
    $("#empname").autocomplete(
    'getNames.action',
        {
            scroll:false,
            minChars:1,
            delay:0,
            width:200,
            autoFocus:true,
            cache:true,
            formatResult: function(data, value) {

              return value.split(".")[0];
            }
        });
});
于 2012-05-03T07:31:32.267 に答える
0

30,000 レコード、適切なキーを使用すると、かなり高速に結果を取得できます。

通常、キーを押すたびに AJAX を実行する必要はありませんが、ユーザーが入力するまでの遅延 (500 ミリ秒など) を与える必要があります。

var t;
$('#textbox').keyup(function() {
    if (t) clearTimeout(t);
    t = setTimeout(function() {
        // AJAX call here
    }, 500);
});
于 2012-05-03T07:36:21.347 に答える