2010-12-24 8 views
1

ここで簡単な質問:大きいXMLファイル(1行につき1つのアイテム)、約50,000アイテムを読み込み、JavaScriptを使用してクライアントサイドで解析する方が速いですか(特定の日付に対応する行を探しています範囲を超えている)、またはPHPが事前解析を行い、必要に応じてクライアントに送信する方が速いのですか?これは、PHPリクエストが1秒に1回程度発生することになります。マップ上にポイントをロードしようとしていますが、各日付範囲には約2000ポイントが必要です。一度にXMLを読み込む方が速いのですか。

ありがとうございます!

+0

オーバーヘッドがメモリの場合、saxまたはstaxまたはvtd-xmlを使用することができます。通常、I/Oはダイナミックメモリアクセスよりも遅いため、すべてをロードする方が高速です –

答えて

2

1秒ごとに結果を1000に戻すと、パフォーマンス上の問題が発生します... AJAX経由で大量のデータを送信する場合は、JSONを代わりに使用することをお勧めしますワイヤを介して送信するオーバーヘッド/コンテンツを少なくします。

あなたはまた、サーバー上のフィルタリングについて言及しました...間違いなくあなたが送信する必要のないものは除外します...送信する必要があるまで。

+0

奇妙なことはFirefox同じ正確な量のデータに対してXMLバージョン(createXmlHttpRequest)とは対照的にgetJSONを実行するのは難しいようです。何らかの形でコンテンツをキャッシュしようとしているからですか?しかし、JSONのフットプリントは小さくなります。 – Rio

+0

JSONはFirefoxでうまく動作するはずです - 正しいコンテンツタイプのヘッダー "application/json"を使ってデータを返していますか?...キャッシュについては、実際にはAJAX要求をキャッシュすることは歴史的に最も積極的なIEです。 – scunliffe

0

です。この場合、私はあなたが測定することをお勧めします。

1

どちらも遅いです。最初はXMLを使用すべきではないようです。巨大なXMLの解析と読み込みには時間がかかり、結果のツリーも検索されます。このようなタスクのために作成されたデータベースを使用して、長年にわたって最適化されています。 XMLはデータベースではありません。無駄な帯域幅を最小限にするために(JSONがpropably最善の策である)あなたは一日複数のユーザーを期待している場合はとにかく

、キャッシュが大幅に役立ちます、そしてあなたは、非常に軽量の形式を使用してクライアントにデータを送信する必要があります。

+0

奇妙な点は、同じ正確な量のデータに対してXMLバージョン(createXmlHttpRequest)とは対照的に、FirefoxがgetJSONを実行するときにFirefoxが苦労しているようです。これはコンテンツをある形式でキャッシュしようとしているからですか?しかし、JSONのフットプリントは小さくなります。 – Rio

関連する問題