9

Backbone.js では、モデルの読み込みと保存は ajax 呼び出しを介して行われます。ただし、ajax を介してこれをプルダウンすることなく、ページの読み込み時に初期コレクションを読み込むためのベスト プラクティスはありますか? サーバー側のレンダリングを可能な限り前もって行うようにしています。

過去に、サーバー側でレンダリングできるように、初期データ状態の json 文字列を含む javascript 変数を使用して html をシードしましたが、これが良い方法かどうかはわかりません。

4

3 に答える 3

5

それが必ずしもベストプラクティスであるかどうかはわかりませんが、htmlにjsonオブジェクト(説明したjson文字列ではありません)をシードするこの方法は、確かに初期読み込みを行うための私の好ましい方法です。最初のAJAX呼び出しが戻るのを待つ遅延を取り除くという(明らかな)理由だけでなく、開いている接続が1つ少ないため、ブラウザーは代わりに他の何か(img srcなど)をロードできるようになります。 document.onLoadに少し早く。

このメソッドを使用するときは、ページ上の静的なhtml要素を読み込んでレンダリングする機会を与えるために、本文の下部(つまり、ヘッドセクションではない)のスクリプトタグに上記の変数を配置することをお勧めします。最初。document.onLoadが起動すると、jsonデータの準備が整います。

于 2012-10-25T19:06:53.553 に答える
1

Backbone docsから、script タグでモデルを初期化することは悪い習慣ではありません。window.projectData現在のプロジェクトでは、外部の JavaScript でバックボーン モデルを初期化できるように、プレーン オブジェクトのみを 内に設定することにしました。

<script>
  ;(window.projectData || (window.projectData = {})).modelName = {/* value */};
</script>
于 2012-10-26T10:05:50.457 に答える
0

選択する方法は、ロードする予定のデータの量と、そのデータがページ内でどのように使用されるかによって異なります。

必要なデータのほとんどが最終的にページにレンダリングされない場合、初期状態を JavaScript 変数にブートストラップすることは悪い方法ではない可能性があります。

ただし、データがページの表示に直接関連している場合は、バックボーン アプリケーションの初期状態として、事前にレンダリングされた DOM を解析することをお勧めします。この種の解析は、特に大規模なデータセットの場合、多少遅くなるという注意が必要です。

事前にレンダリングされたコンテンツを解析することを選択した場合は、提示されたコンテンツをバックボーン対応のフォームにマッピングするのに役立つかもしれない小さな jQuery DOM パーサーを少し前にまとめました。

于 2012-10-25T18:45:16.693 に答える