2009-07-18 13 views
0

デザインに関する質問があります。私は、ユーザーが短いメッセージを入力し、他のユーザーに表示されるWebサイトを持っています。時にはこれらのメッセージに書式が設定されているため、文字列を操作する必要があります。私はこれをサーバー上でもクライアント上でも行うことができます。私の質問はどこで起こるべきかです。asp.net website - 文字列の操作は、サーバーまたはクライアント上で発生する必要がありますか?

サーバーで発生した場合、サーバーに負荷がかかり、クライアントに送るデータが増えます。しかし、サーバーマシンは通常、ユーザーが持っているものよりも「優れた」マシンになります。

クライアント上で発生した場合、文字列の操作はユーザーに相殺されますが、javascript/jqueryの文字列操作の効率性がわかりません。

これについてのご意見はありますか?

+0

申し訳ありませんが、私は、文字列の操作中にデータベースが呼び出されることがあります。これが私がサーバー上で行った主な理由でした。しかし、私は、AJAXがこのタイプのことをクライアントから簡単に行うことができることを知っています。そのため、私はこのルートに行くことを考えています。 – codette

+0

この情報で質問を編集してから、コメントを削除してください。 –

答えて

0

他のユーザーにこの文字列をどのように取得しているのかわかりませんが、あなたのサーバーに送り返すと仮定しているので、クライアントでクリーンアップしてから、あなたが入手したものを取って、サーバー上でそれをきれいにしてください。

JavaScriptが有効になっていることを保証できれば、それをクライアントにオフロードすると、実際には各呼び出しでサーバー上に追加のミニプロセスが大幅に削減され、その負荷がクライアントに配信されます。

考慮すべきこと...あなたがJavaScript上で文字列をチェックしたりクリーニングしたりしていないので、あなたが得ていることを保証するものではありません。これは、この情報を他のユーザーにどのように送信しているかによって危険です。ちょうどjavascriptの注射の攻撃を考えてください。

サーバー上で実行すると、実際に何を通過してクライアントのJavaScriptが必要になるのではなく、送信しているものがあなたが望むものであることを保証できるので、本当に心配する必要はありません。あなたはカバーしました。

文字列の操作が、各メッセージサーバー側で実行している他の操作と比べて、非常に多くのトランザクションを実行していますか?

2

私は、クライアントマシンがサーバーに比べて著しく劣っていると思われる非常に多くの文字列操作を行う「短いメッセージ」を想像することはできません。それをクライアントに置きます。

+0

最初は重要ではないようです。しかし、それをテストした後、サーバー上で文字列操作を行うと、ユーザーがデータを受け取るのに1秒以上かかる。私が文字列の操作をしなければ、時間の半分を要します。(この場合、文字列の操作は挿入時に実行され、読み込み操作を行う必要はありません) これはファイヤーバグでの眼球の結果に基づいています。 – codette

+0

サーバで長い時間がかかる場合(おそらく家庭のPCよりはるかに強力ではないでしょう)、クライアントでそれを実行することで確実に負荷を分散する必要があります。 –

0

あなたの定義によりますが、あなたのサーバーに重要な意味を持つためには、たくさんのものを利用しなければなりません。

これは、あなたのクライアントからサーバーへのより少ないラウンドトリップができるほどです。まずはJavaScriptでやり直してみてください。そうする必要がある場合は、サーバーに移動します。

0

私は可能な限りクライアント側に保管したいと思うでしょう。私は先に進んで、クライアント側のコードをコンパクトにしたり、Webサービスを保存するために到着したときにメッセージを抽出したり、何らかの帯域幅をメッセージから引き渡したりすることもあります。

関連する問題