2012-03-06 4 views
0

私はAsp.net webformsで書かれたサイトを持っています。 Ajaxを大量に使用します。生データまたはHTMLをAjaxレスポンスとして送信する必要がありますか?

ほとんどのフォームは、javascriptで送信されます。 Javascriptは入力を検証し、サーバー上の/ajax.ashxに送信します。サーバーは要求を処理し、JSON応答を返します。私のjavascriptはJSONを使用してhtmlを作成し、DOMに挿入します。

私は自分のウェブサイトの新しいバージョンをasp.net MVC3を使用して作成しています。私はこのテーマに関するチュートリアルを見てきましたが、その中には別の方法でajaxをやることをお勧めします。データを送信し、javascriptでhtmlを挿入するのではなく、サーバーでhtmlを作成し、javascriptを使用してDomに挿入します。たとえば、this tutorialです。

私はどちらを使用しますか?新しい方法を使用する方が速くなりますが、それは良いですか?

答えて

5

これは主観的な質問です。両方の方法が可能であり、より良い方法であるがありません。それぞれのアプローチの長所と短所があります。

サーバー上でHTMLを構築する方が簡単ですし、最初のアプローチと比較して、労力は少なくて済みますが、帯域幅を消費します。

クライアント側のテンプレートフレームワークを使用すると、クライアント側のDOM要素の生成を簡単にすることができます。

+0

1つの表現でいくつかの帯域幅を送信するかもしれませんが、あまりにも心配する価値はありません。 –

+0

@EstebanAraya、すべては、正確なシナリオと解決しようとしている問題の種類に依存します。 –

4

htmlコードを直接サーバーに作成し、ajax呼び出しを挿入するのは非常に高速でシンプルですが、実際の問題はサービスが特定のアプリケーションで使用されることです。 RAWデータを送信することで、特定のアプリケーションにバインドせずに、どのような方法でもデータを使用することができます。

2

jsonを返すと、より柔軟に感じられます。あなたはjsonレスポンスで何が起きるかを変更することができます。例えば、htmlを返すと、レイアウトと混合されたデータが返されます。これは私にとって正しいとは感じません。

2

はレイアウトを分離する方が良いと思います。そのため、HTMLではなくスクリプト間でデータを渡す必要があります。 HTMLを送信する場合は、有効なHTMLとCSSを作成する必要があると考えてください。最初は難しくないかもしれませんが、ajaxなどを呼び出すファイルにロードされていないCSSを使用し始めます。

レイアウトから常にコンテンツ(データ)を分離します。そのため、データとレイアウトを分離するためのHTMLとCSSがあります。だから、なぜデータの間にHTMLを混ぜることで物事を混乱させるのですか?

1

htmlサーバサイドを構築することは、おそらくより高速であり、重要なクライアントを駄目にすることはありません。 JavaScriptを使用してHTMLにデータをレンダリングするには時間がかかり、すべてのブラウザがjs(つまりIEの古いバージョン)で高速であるわけではありません。

以前のポスターと同じように、それはクライアントにどれくらいの負荷をかけているかによって異なります。私はあなたが物事をサーバーサイドで行うことができれば、あなたはすべきであるという意見です。

このサービスを使用してJSONを他のアプリケーション/クライアントに返す場合は、JSONとしてそのまま残しておき、クライアント側で必要な処理を行うことをお勧めします。

関連する問題