私のデータを表示するためにフォーマットする必要があるのは誰ですか?

StackOverflow https://stackoverflow.com/questions/2145247

  •  23-09-2019
  •  | 
  •  

質問

私は django ビューを持っており、このビューは ajax 呼び出しで非同期に設定されるテーブルを返します。

設計の観点から、どれに従えばよいでしょうか。

  1. ajax 経由で呼び出される django ビューは、各セルの html マークアップを含むテーブルの内容を json 応答として返します。JavaScript コールバック ハンドラーは内容を取得し、そのままテーブルのセルに挿入します。
  2. ajax 経由で呼び出される django ビューは、テーブルに何を入れる必要があるかについての純粋なデータを、やはり json 応答として返します。非同期 JavaScript コールバックはデータを取得し、適切なマークアップでフォーマットしてテーブルに入れます。

言い換えれば、セルの内容のマークアップ形式の責任は誰が負うべきなのでしょうか?ビューかJavaScriptか?

ビューはすでにマークアップされたコンテンツを返すので、私は最初のことを言いたくなるでしょう。マークアップされたコンテンツを含む json が返される場合、大きな違いはありません。

あなたの見解を聞きたいです。

正しい解決策はありません

他のヒント

あなたがテーブル全体を移入している場合は、独自のテンプレートで、あなたのテーブルを置き、アヤックス/ JSONを経由して、テーブルのHTMLを返すことができます。

あなたはテーブルテンプレートを含めるために、オリジナルのテンプレートを編集する必要があります

 {% include "myapp/_table.html" %}

とビューで、あなたのjavascriptがで代用しますJSON変数としてレンダリングテンプレートを返します

 return { 'table': render_to_string("myapp/_table.html", context) }

このアプローチは、あなたが常にテーブル全体を更新したい良いですが、テーブルのレンダリングは、完全なコンテキストを必要としません。私は確かにパフォーマンスがどのようなものであるかないんだけど、あなたは一度だけあなたのテーブルを定義するためには、ページの一部を更新するクリーンな方法です。

これは(それほど頻繁に)依存します。

データはここでしか、今要求された場合は、

、ちょうどそれがすでに標準ビューをレンダリングされたテンプレートの同じセットで、サーバー側でレンダリングできるようになりやすい簡単かつ少ないエラーになります。

あなたは、データが(オートコンプリートフィールドのような)他の場所で必要とされるであろうところ、それはJavaScriptが仕事をして、きれいな、再利用可能なJSONエクスポートを作成できるようにする方が良いだろう、しかし、ユースケースを考えることができれば。

これらのオプションはすべての他の回答に追加し、最終的にそれが決定するのはあなた次第です。

などジャンゴとしてA MVP のシステムでは、ビューは、どのようなデータを決定します示され、プレゼンターは、それが表示されるべきかを決定する必要があります。それはそうするintractably難しいことを証明しない限り、そのためのJavaScriptの書式の大部分を行う必要があります。

また、として一部の人々によって呼び出され、Unabstrusive JavaScriptを練習する良いですHijaxする

だから、あなたが最初の標準ページを持って、特定のジャンゴ・テンプレートブロック内のテーブルとページの残りの部分と一緒にプレゼントテーブル、。

その

あなたはこれをしたら、あなたはあなただけあなたが必要なのdivにクライアントにロードすることができますAJAX応答で必要なテーブルの一部を取得するので、「AJAXない場合は」内Djangoのテンプレートの一部を拡張して含めることができます。

これはJavaScriptで、サーバーとクライアントで一度に二度一度マークアップを維持するために不必要かつ冗長である。

それゆえ、私は、サーバーrederingの最初のオプションを、好むだろう、とクライアントのみレンダリングされたHTMLをロードします。

私は前にこれを数回遭遇してきた、と私は一般的に後者を選ぶ。ここで、ビューに戻り、純粋なJSONます。

しかし、あなたが選択したアプローチは、間違いなく、そのうちの一つのデバイスをターゲットに(およびそのCPU /ネットワークの制約)され、いくつかの要因に依存しなければなりません。純粋JSONは、一般的により小さいペイロードをもたらすので、モバイルデバイス用の最適であってもよい。

それはまた、あなたのコンテンツのHTMLとJSONの両方のバージョンを公開しても意味があります。あなたのサイトのためのいくつかの点で非常に軽量なAPIを作成するために探しているなら、これは特に便利です。

最後に、あなたは、このようなジョンResig氏のマイクロテンプレートのようライブラリを使用することができますまたはクロージャテンプレートは、クライアント側のHTMLの生成を簡素化するためにを。

私は最初の選択肢、正弦それはユーザーのためのより多くの長所を提示して行くだろう:すぐにページが読み込まれる(非同期呼び出しのためノーウェイト)、何のJSは、(例えば、モバイルデバイス用)

必要ありません
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top