2012-03-14 7 views
2

一般に、パフォーマンスはサーバー側またはJavaScript側で多くのデータ計算を行う方がよいでしょうか?サーバー側またはJavaScriptの計算?

私はページに表示されているデータの束を持っています - そして、私はフォーマット/解析/そのデータをサーバー側(Pythonで)で計算してテンプレートを返すべきかどうか、私は、データを返す必要があり、すべての計算/ JavaScriptの側で書式設定を行う?

これらの決定を下す際に、一般的な目安はありますか?

私は計算しているものの例 - タイムスタンプを日付に変換します。

+1

すべてのユーザーが異なるタイムゾーンにあるような日付の場合、それをクライアントに置くと、ページがキャッシュ可能になります。 –

+1

ユーザーに計算をオフロードすることができれば、それほど良いことはありません。しかし、計算機がデータの負荷にさらされている場合は、サーバのCPU時間の節約vs。生データをクライアントに送信するための帯域幅コストが増加します。 –

答えて

2

これは、何をしようとしているかによって大きく異なります。グラフが動的でアニメーション化されている場合は、jsを使用してクライアント側を行うことが唯一の選択肢かもしれません。また、データの量によって異なります。あなたが10MB以上の生データを持っているなら、私はjsでそれをすることをお勧めしません。

2

まず、表示するデータを格納するデータ形式を変更することを検討する必要があります。それは、それを表示するための便利な方法で既に格納されている必要があります - それは全く処理を必要としません。

さらにデータの再計算が必要な場合は、この結果をキャッシュする可能性があるため(たとえば、mamceched)、すべてのページの更新時にこれらの値を計算するのは意味がありません。

最悪の選択肢は、クライアント側で顕著なパフォーマンスの問題を検出することが困難なため(例:データが大きい場合)、テスト環境でこの種の問題が発生しないようにすることです。サーバーの速度が低下していることがわかりますが、一部のクライアントでページが非常に遅く表示されることは非常に困難です。

1

thedkに記載されている事実に加えて、クライアントが特定の前提条件を満たしていない可能性があるため、クライアント側で行う計算が失敗する可能性が高いことにも注意してください。 JavaScriptが無効になっているか、インターネット接続が信頼できないと考えてください。一般的に、サーバーから離れるとすぐにデータを制御することはできません。

したがって、重要でない計算だけをクライアント側に移すことをお勧めします。 datetime形式のようなものは大丈夫かもしれませんが、JavaScriptでウェブサイト全体を解析しようとしないでください。クライアント上でJavaScriptが無効になっていても、あなたのウェブサイトはうまくいくはずです。