0

ここでの私のロジックがおかしいのか、それとも単に ajax の性質なのかはわかりません。説明してみます。少しの情報 (プリアンブルの ID を持つ div に含まれるテキスト) を取得し、それを現在のページの div に追加するページがあります。

これはページです: http://www.cresser.co.uk/cresser/new-cars/

ページが完全に読み込まれるまで関数は起動されません。これにより、さらに遅延が発生することがわかっています。これについては調査中です。

しかし、ご覧のとおり、車両モデル ボックスに表示されるのは赤いテキストです。非常に遅い。

これがコードであり、私が言ったように、私はそれを完全に非論理的にやっているかもしれません.

$('.indexList .item').each(function(){

var tempPath = $(this).attr('class').replace('item ', '').replace(' myPointer', '');

    $.ajax(
        {
            type: 'GET',
            async: true,
            url:  './' + tempPath,
            success: function(data) {
                $(data).find('#preamble').each(function(){
                $('.item.' + tempPath + ' .strapLine').append($(this).text());
                $('.item.' + tempPath + ' .strapLine').fadeIn('fast');
            });
        }
    }); 
}); 

私がやろうとしていることが ajax を使ってばかげているというだけですか、それともこのコードを高速化する方法はありますか?

ありがとう。

編集。明確にするために、私が気になっているのはページ全体の読み込み速度ではありません...現時点では. 赤いテキストをロードする関数の速度です。すなわち。最初の登場から最後の登場までがとても長く感じます。

4

2 に答える 2

1

あなたはAJAX を使用して11 の異なる HTML ページをフェッチしており、それぞれが(私の接続で) ブロッキングを考慮して5 秒から 11 秒の時間を記録してます。つまり、HTML の代わりに JSON を使用して、関連情報のみを返す Web サービスを作成します。

あなたのボトルネックがそこにあるのではないかと心配しています。

于 2013-02-13T11:34:46.397 に答える
1

各車のページへの ajax 呼び出しを起動するのではなく、1 つの ajax 呼び出しを起動してすべての車の情報を取得し、jquery を使用してデータを dom に追加してみませんか。

そうすれば、10 秒以上の遅延が 1 回だけ発生します。

そのページから応答を得るのになぜ10秒かかるのか疑問に思いますが。問題を引き起こしているのはサーバー側のコードだと思います。DBは巨大ですか?DB クエリの時間を計測しましたか?

ajaxに関する限り、その問題はありません。サーバー側のコードが速ければ、たとえ 100 回の ajax 呼び出しを行ったとしても、ページははるかに速く情報をロードします。

于 2013-02-13T11:37:28.473 に答える