4

Ajax で PHP ページを呼び出しています。大量のデータ (約 5000 行) が返されると、ページの読み込みに数秒かかることに気付きました。これは正常な動作ですか?これを呼び出すために使用しているコードは次のとおりです。

$.ajax({
        url: '_get_items.php?project_id=<?=$_GET['project_id']?>&list_id=<?=$_GET['list_id']?>&sort='+ sort +'&assigned_to='+ assigned_to,
        type: "GET",
        success: function(data) {
            $('.tasks_items').html(data);

        }
    });

Chromeでデバッグすると、「XHR Ready State Change」と「Recalculate Style」に費やされる時間の大半が数百回呼び出されます。

ここに画像の説明を入力 フルサイズ

非常に遅い理由は、すべてのデータが返されるためだと確信しています。私の質問は、これをどのように修正できますか? HTML を縮小する必要がありますか? GZip はすでに有効になっています。他の提案はありますか?

ネットワーク画面は次のとおりです。

ここに画像の説明を入力 フルサイズ

4

2 に答える 2

1

ネットワークデバッグパネルを確認してください。リクエストがどこで時間を費やしたかが表示されます。サーバーの応答を待機しているか、データを受信して​​いるか。ほとんどの場合、応答を待機している場合は、サーバー側のコードをプロファイリングする必要があります。受信している場合は、ペイロードを小さくする方法を考える必要があります。

于 2012-09-24T19:08:55.163 に答える
0

HTML の大きなブロックを追加する場合、生の JavaScript を使用する方がライブラリよりも高速であることに気付きました。

$.ajax({
    url: '_get_items.php?project_id=<?=$_GET['project_id']?>&list_id=<?=$_GET['list_id']?>&sort='+ sort +'&assigned_to='+ assigned_to,
    type: "GET",
    success: function(data) {
        $('.tasks_items').get(0).innerHtml = data;
    }
});
于 2012-09-24T20:08:56.393 に答える