6

AJAXを介して大量のデータ(座標と追加の値)を取得する必要があります。データの形式は次のとおりです。

-72.781;;6,-68.811;;8

2つの異なる区切り文字が使用されていることに注意してください:;;,

区切り文字列を返してString.split()(2回)使用するだけですか、それともJSON文字列を返しJSON.parse()てデータを解凍するために使用する方が良いですか?それぞれの方法で最悪と最高は何ですか?

4

2 に答える 2

8

データが非常に大きい場合でも、現実の世界でパフォーマンスの違いが目立つ可能性は非常に低くなります(データ転送時間はデコード時間よりも優先されます)。したがって、実際のパフォーマンスの問題を除けば、コードの明確さの観点から何が最善であるかに焦点を当てることが最善です。

データが均質である場合(各座標をほぼ同じ方法で処理する場合)、String#splitアプローチに問題はありません。

コード内で座標を個別に参照する必要がある場合は、固有名を割り当てるための引数があります。これは、JSONの使用を提案します。私は明快さに傾倒する傾向があるので、おそらくJSONに傾倒するでしょう。

考慮すべきもう1つのことは、ワイヤーのサイズです。優れたファットネットワーク接続のみをサポートする必要がある場合は、おそらく問題ではありませんが、オブジェクトごとにJSONキーが繰り返されるため、サイズが著しく大きくなる可能性があります。それは圧縮されたJSONを主張するかもしれません。

于 2013-03-25T13:10:30.753 に答える
2

あなたの問題を説明するパフォーマンステストを作成しました。
ブラウザの実装にもよりますが、多くの場合、結果が示すように、バックグラウンドで他の多くのことを行うsplitため、はるかに高速になりJSON.parseますが、解析を容易にするためにデータを提供する必要があります。すでにフォーマットされたjson配列を解析するためにsplit(の中で)を使用する場合を追加し、結果はそれ自体を物語っています。replace

全体として、数ミリ秒は高速ですが、読み取りと保守がn秒難しいスクリプトは使用しません。

于 2013-03-25T13:29:36.407 に答える