12

AJAX応答の「理想的な」出力形式は何ですか? クライアント側の JavaScript テンプレート エンジンを使用して、純粋なデータ (JSON、XML) をページにレンダリングしますか? それとも「そのまま」ページにレンダリングされた HTML スニペットですか?

あなたの好みは何ですか?その理由は何ですか?

4

5 に答える 5

11

ほとんどのシナリオでは、JSON (または必要に応じて XML、例として JSON を使用しています) のみを送信する必要があります。

  • 株価などのデータを送信する場合は、JSON を使用します。
  • ネットワーク層を非常に無駄のない状態に保ちたい場合は、純粋な JSON データを送信し、マークアップを追加するという重い作業をクライアントに任せます。
  • クライアント ページが永続的である場合は、JSON を送信します。その後、クライアントは Person.Name に挨拶を送信できます。Person.Score を更新したり、Person.Status を編集するフォームを表示したりできます。すべて 1 つの Person オブジェクトを処理します。
  • Web API を公開している場合は、明らかに JSON を使用して、クライアントがそれを使って何でもできるようにします。

そうは言っても、私は JavaScript から HTML を生成するのが本当に嫌いです。これはメンテナンスの悪夢であり、2 つを混在させるのは好きではありません。送信するのが JSON だけの場合、JavaScript で HTML を生成しないようにするにはどうすればよいでしょうか。Person(s) オブジェクトを扱っている場合、最初にページをレンダリングするときに、次のようにレンダリングします。

...
<div class="person display">
    <div class="name"></div>
    <div class="status"></div>
    <div class="score"></div>
</div>
...

AJAX 経由で個人データを取得する場合は、上記の DOM 構造に入力するだけです。

複数の Person の情報を表示したい場合は、DOM 構造に直接入力する代わりに、DOM 構造のクローンを作成してから入力する必要があります。このようにして、テンプレートはそのまま残り、再利用できます。

于 2009-05-15T07:29:47.907 に答える
6

それは、データを何に使用するかに大きく依存します。

マッシュアップおよび Web サービス用

アプリ内および外部から使用されるデータには、決して HTML を使用しないでください。解析が難しく、別の構造に適合させるのが困難です。

ウィジェット用に更新されたものなど、データが少ない場合は、すばやく簡単に使用できる JSON を使用します。

検索クエリの結果のように、データが大量になる可能性がある場合は、XML を使用します。XML の方が、膨大なデータの分析に柔軟に対応できるからです。

内部使用のみ

純粋な XML をわざわざ使用しないでください。とにかく、バッチ分析は常に出力の前に行われます。

ほとんどの場合、JSON を使用することをお勧めします。JSON は HTML よりも柔軟でありながら、配置がかなり高速であるためです。

データを後で処理する必要がないことがわかっている場合や、レイアウトが複雑な場合は、HTML を使用してください。サーバー側で複雑な HTML を記述することは、DOM を使用するよりもはるかに簡単です。

于 2009-05-15T07:38:13.313 に答える
2

大量の HTML を返す場合は、サーバー側でまとめてページにロードするのが最善です。

キーと値のペアの集まりのようなものを返して何かを更新する<select>場合は、JSON として返し、クライアント側で HTML を構築するのが最善です。

于 2009-05-15T06:05:43.770 に答える
0

状況にもよりますが、クライアントにデータを送信し、クライアント側のフレームワークを使用してページを更新することを好みます。私が自分で書いていて、スニペットが十分に小さかった場合、おそらくサーバー側でそれを行い、jsをできるだけスリムに保ちます。

于 2009-05-15T07:25:22.753 に答える
0

私にとって「理想的な」方法はありません。ページネーションが必要で、クライアント側のテンプレートが既にある場合に、jQuery を使用してクライアント側でレンダリングするための純粋な JSON と jTemplates を使用します。

サーバーへの単純な呼び出し (オートコンプリート、インプレース編集、下書きの保存など) を実装する必要がある場合にも、JSON を使用します。

ブランチの新しいページ フラグメントが必要な場合は、HTML レンダリングを使用します。テンプレートの読み込み、ページへのペインの追加、カスタム コントロールのレンダリングです。

ところで、「更新パネル」だけでなく、クライアント側のオブジェクト操作に切り替えることができるので、jsonを好むことができます。

于 2009-05-15T06:45:23.003 に答える