2

私は Facebook のような投稿システムを作成しています。このシステムでは、ユーザーがテキスト コメントを入力すると、適切にスタイル設定され、書式設定されたボックス内のページにすぐに表示されます。同時に、テキストはバックエンドに ajax されて保存されます。コメントは基本的に HTML5 ですが、かなり複雑なレベルの構造があるため、実際のテキストは div 内の div 内の div 内、最終的には記事内に表示される必要があります。このDOM操作はjqueryで行っています。

ページが生成されると、バックエンドはすべてのコメントを繰り返し処理し、コメント テキスト (およびポスターの名前、タイムスタンプなどのメタデータ) を django テンプレートの適切な場所に挿入する必要があります。

これには概念的な問題があります。コード内の 2 つの場所で、適切なクラス名と ID 名を持つかなり複雑なネストされた html タグのセットを複製しています。新しいコメントを追加するための jquery を含む js ファイルと、最初のページの html を生成します。これは私にとってすでに問題です。なぜなら、私はまだコメントでスタイルに関して何が起こる必要があるかを正確に設計している最中であり、コード内の 2 つの場所にこの複雑な HTML のバンドルがあることで、すでにつまずいたからです。

この種の HTML の重複に対処するためのベスト プラクティスは何ですか? コメントの動的な追加を処理するために jquery が必要なため、jquery を削除できません。同時に、django のテンプレート エンジンの機能をあきらめて、一度必要な HTML 構造を構築し、コメントごとに詳細を入力するのは無駄に思えます。さらに、常に空白のページをレンダリングして、ユーザーがページをロードするたびに、jquery DOM 操作を使用して、おそらく非常に多くのコメントを動的に作成します。この問題を解決するために私が考えていないことはありますか?

4

1 に答える 1

3

JSON ではなくテンプレートを使用して、レンダリングされた HTML フラグメントを返すように Ajax 処理ビューを取得するだけで、jQuery は生データから構築するのではなく、適切な場所にそれらを挿入するだけです。

于 2012-10-18T11:08:42.863 に答える