25

すべてのページが多くのデータ ソースに依存する Web アプリを構築する場合、データの最初のビットをフェッチする最良の方法は何ですか? Twitter を見ると、ページの読み込み時に表示されるツイートは HTML ソースにあり、下にスクロールすると AJAX を使用してさらに多くのツイートが読み込まれます。しかし、既に DOM にあるデータをモデルに挿入する便利な方法はありません。

css、html、およびjavascriptを取得するためにサーバーへのラウンドトリップを何度も行ったばかりなので、ページロードシームの直後に初期データのリクエストを行うのはばかげています。データをページの javascript タグに挿入して、javascript 関数が初期データを追加できるようにするのは悪い考えでしょうか?

具体的にはangularjsでお願いしているのですが、一般的なテクニックがあれば教えてください。

4

4 に答える 4

4

とにかくページの読み込み時にコントローラーを参照するので、インライン スクリプト タグを使用する必要はありません。

デフォルトのモデルを設定して初期ロード時に属性ng-bindを使用するか、関数を呼び出してデータを返すことができます。

angularjs でロード時にデータをフェッチするのはかなり一般的です。

于 2013-08-06T17:40:11.537 に答える
2

Zend_Http_Client や Guzzle などのバックエンドで Angularjs を HTTP クライアントと組み合わせて、サーバーがデータを取得できるようにするのが最善でしょうか。次に、レンダリング時にデータを json として javascript に渡します。

Angularjs がシングル ページ アプリケーション用に設計されていることは知っています。そのため、データを遅延ロードするのは理にかなっています。

ただし、ページを動的にレンダリングし、コンテンツを整理するタスクをAngularjsに委任するアプローチに移行する場合. AngularJS ビューを含めるのに適したフレームワーク。現在、angular-seed などのプロジェクト テンプレートはすべて静的です。

つまり、サーバーが json オブジェクトが埋め込まれたページを提供するという考え方です。次に角度があり、クライアント側で引き継ぎ、必要に応じて追加のコンテンツを取得します。

したがって、連絡先の単一ページ (例: index.html) の代わりに、profiles.html、products.html などの複数のページを作成します。バックエンドのヘルプは、ページの右上にユーザー名のように頻繁に変更されないセクションがある場合に特に役立ちます。私にとっては、これらのデータをページに事前にロードし、ページがロードされた後にサーバーに問い合わせる必要がない方が良いと思います.

bigblind が気づいたように、これは facebook、gmail、twitter などのサイトのやり方のようです。これらには、ページの読み込み時に埋め込まれたデータが含まれています。その後、サービスを介して追加のコンテンツをロードします。

アイデアは次のようなものです。

Webservice <---------- Backend------------> Frontend
     <------------------------------------------

バックエンドは、レンダリングされたページの初期データをクライアントに提供するために Web サービスにクエリを実行するタスクを委任します。その後、クライアントは Web サービスに直接接続して、追加のコンテンツを取得できます。

上記のセットアップを使用して..理想的な開発スタックは何ですか?

于 2013-09-25T11:46:34.437 に答える
1

この質問の回答によると、ページの script タグ内の JSON オブジェクトが適しているようです。誰かがより良いアイデアを思いついたら、私はあなたの答えを受け入れます。

于 2013-08-06T18:31:34.760 に答える