0

ハンドルバーに関する完全な初心者の質問について、事前にお詫び申し上げます。私は Rails のバックグラウンドを持っており、Handlebars はクールに見えますが、サーバー上でビューをコンパイルするよりも優れているとは思えません。

それでは質問です。

現在、私たちのアプリはノード サーバーで Handlebars JS テンプレートをコンパイルし、完全にレンダリングされたページをクライアントに返します。クライアントでレンダリングするためにテンプレートをプリコンパイルすることを検討するように依頼されました。

まず、これをどのように設計するかについて、私は少し困惑しています。クライアントへの最初のダウンロードがレイアウト テンプレートのようなもの (ボイラープレートの html、css、および js) である場合、クライアントは、Handlebars.templates にあるプリコンパイル済みのテンプレートと共に、渡された JSON データを使用して構築します。ビューの詳細?

もしそうなら、必要なときに必要なものだけを提供するよりも、クライアントが必要とする可能性のあるすべてのテンプレートをロードする方が本当に効率的ですか?

4

3 に答える 3

2

まず、これをどのように設計するかについて、私は少し困惑しています。クライアントへの最初のダウンロードがレイアウト テンプレートのようなもの (ボイラープレートの html、css、および js) である場合、クライアントは、Handlebars.templates にあるプリコンパイル済みのテンプレートと共に、渡された JSON データを使用して構築します。ビューの詳細?

物事を確実に行っている場合はサーバーでレンダリングされたページを通常どおりに提供します。

これには<script>、テンプレートが埋め込まれた が含まれます。それらは、2 番目のページが通常サーバーからロードされる時点でのみ機能します。

もしそうなら、必要なときに必要なものだけを提供するよりも、クライアントが必要とする可能性のあるすべてのテンプレートをロードする方が本当に効率的ですか?

初期ロードには追加料金がかかります。データが適切である場合、同じテンプレートに基づいた新しいページにアクセスするたびに HTML ドキュメント全体を再取得する必要がないため (場合によっては、すべての変更をクライアントで計算できる場合)、これは長期的に見れば報われます。一部の HTTP リクエストを完全に回避できます)。

于 2014-07-09T18:39:13.550 に答える
0

これは、アプリケーションの特定のニーズと制限に大きく依存します。クライアントでのテンプレートの利点は、http 要求が減り、パフォーマンスが向上することです。欠点は膨満感の増加です。したがって、パフォーマンスのボトルネックがどこにあるかによって、最初のペイロードに肥大化を追加するよりも、http リクエストを増やす方が良い場合も悪い場合もあります。もちろん、テンプレートなどのパッケージを遅延ロードすることもできます。

設計に関しては、はい、テンプレートはクライアント側で待機しています。サーバーから JSON を要求するときは、データをテンプレートにプラグインし、ページにレンダリングします。

于 2014-07-09T18:36:57.933 に答える
0

初期ロードは速くありません。

しかし、「単一ページ」アプリケーションを実行している場合は、初期ロード後のすべての変更がはるかに高速になります。よりダイナミックで速いフィーリングを与えます。

しかし、フォームで Rails を実行し、アプリのような「単一ページ」を実行していない場合、クライアント側をレンダリングする理由はありません。

于 2014-07-09T18:36:02.423 に答える