0

このオートコンプリート プラグイン (FCBautocomplete) を使用しています。結果を取得するためにフィールドに入力するすべての文字で、1 つの要求がサーバーに送信されます。データが大きすぎるため、発生する可能性のあるすべてのメモリ クラッシュと時間が心配です。たとえば、'John Smith' という名前の連絡先がある場合、10 件の要求が送信されます (すべての結果が返され、入力した文字に基づいて結果が表示されます)。これはコストがかかりすぎます。私の質問は、キャッシュがどのように役立つかです。JSON 応答をキャッシュし、そのキャッシュされた応答から残りの検索結果を取得することは可能でしょうか (つまり、ユーザーが最初の文字を入力すると、すべての結果が JSON 応答として生成されます。ユーザーが 2 番目の文字と残りの文字を入力すると、別のリクエストを送信する代わりに、キャッシュされた JSON レスポンスから検索します)。

パフォーマンスが心配なので、この問題の良い解決策を教えてください。ありがとう

4

2 に答える 2

0

このコードを ajax 呼び出しで試します。

    var cache = {};
$.ajax({
    url : ajax.url + '&suggestions=' + $.trim(queryText),
    type : 'POST',
    dataType : 'json',
    success: function(data){
        if(data.value.length > 0){
            addItemFeed(data, etext);
            cache = data;
            bindEvents();
        }else{
            feed.hide();
        }
    }
});

キャッシュという名前のオブジェクトを1つ割り当て、データをキャッシュに置き、ページのどこからでもこの結果にアクセスして、不要なajax呼び出しを回避してください。

お役に立てれば...!!!

于 2014-09-22T09:01:21.753 に答える
-1

JavaScript でグローバル変数を定義すると、クエリを解決できます。

window.AutoCompleteCacheVariable = "";
于 2014-09-22T09:16:18.773 に答える