0

この ajax リクエストでオートコンプリートを呼び出しています。

source: function (request, response) {
                jQuery.ajax({
                    url: handlerUrl,
                    dataType: "json",
                    data: requestString + "=" + request.term,
                    success: function (data) {
                        if (data.length == 0) {
                            data.push({
                                id: noResults,
                                label: noResults
                            });
                        }
                        response(data);
                    }
                });
            }

オートコンプリートは、サーバーからのリクエスト後にデータをキャッシュしています。データはキャッシュされますが、提案メニューの作成時に膨大な時間がかかります。4000 個のデータがあり、これらすべてがブラウザーにキャッシュされているとします。IEのネットワークオプションでクロスチェックしました。304データがキャッシュされていることを意味する結果のタイプが来ていますが、オートコンプリートがこれらの生データ {id,value pair} を提案メニューとして HTML リストに変換するのに時間がかかっています。そして、それには本当に膨大な時間がかかります。

この問題を軽減する方法はありますか? 生データを提案メニューに変換するために、オートコンプリートのこの人口時間を減らすことを意味します。

編集

searchオートコンプリート、 、responseの3 つのメソッドにブレークポイントを付けましたopen。2 回目にデータがキャッシュされると、responseメソッドからsearchメソッドに到達するまでにほとんど時間がかかりません。しかし、その後スタックし、open非常に長い一時停止の後にメソッドに移動します。

4

0 に答える 0