2011-12-16 8 views
6

私はExpressとバンドルされたテンプレートエンジンJadeについて学んでいます。私が理解しているように、玉はサーバー側のレンダリングを可能にします。テンプレートをサーバー側でレンダリングするのは意味がありますか?

1)サーバがテンプレートをレンダリングするために多くのを計算しなければならない:二つの理由からその次善のではありません。クライアント側で作業をプッシュできます。テンプレートまたは部分的に一度

2)は、レンダリングされた、およびデータの更新が必要と、それはだけではなく、帯域幅の浪費である本格的なHTMLを、再送信の、クライアントにJSONを送信します。

は、サーバー側のテンプレートのレンダリングを持つこれらの本当の問題はありますか?

答えて

7

私は本当にあなたが書いているアプリケーションの種類に依存すると思います。主に個々のページを扱うページがあり、典型的なCRUD/MVC金型に適している場合は、問題ではない可能性があります。しかし、あなたはAJAXのトンとのダイナミックな何かを書いているならば、それは

:-)問題であり、私はあなたの痛みを感じる - 私は、様々なスタックでこの数回にかましてきました。私は、コアページが読み込まれた後に実行されるブラウザで、非同期呼び出しを使用してリストバインディングをすべて実行するだけで終わった。あらかじめバインドされたリストデータのページを最初に要求するのが好きだが、それに続くページはajax呼び出しによって駆動されるのが好きなので、それは悪臭を帯びている。私はちょうど一度サーバーのための一度とクライアントのためのテンプレートのものを書いたくありません。

私は/ /ジェイドは、バインディングクライアント側のようなものをサポートしているとは思いません。良いニュースは、サーバーとブラウザの両方で動作する人気のテンプレート言語がいくつかあることです。私が知っている二人は、次のとおりです。

それは一種の持つflatironjsプロジェクトに属しているように私は、速達でプレートを使用して誰も見たことがありませんそれは成長している独自のフレームワークです。例のトンがそこに急行と口ひげとEJSを使用してのがあります:サイドノートで

、ここではジョエントのサイト上のノード用テンプレートパッケージのリストです:

https://github.com/joyent/node/wiki/modules#wiki-templating

私の提案は、EJSから始めることです。それは非HAML風の構文であり、クライアントとサーバのバインディングをサポートしており、エクスプレススタックではうまく受け入れられているようです。

ハッピーコーディング!

+0

ありがとうございました。 「リストバインディング」とは、「データを取り込む」という意味ですか?また、クライアント側のテンプレートを使って作業することだけを提案しているように見えるので、サーバーのテンプレートを書き直す必要はありません。では、なぜクライアントとサーバーの両方で動作するテンプレート言語を選んだのですか? – Randomblue

+0

リストバインディングとは、データリスト(通常はjson/xml、ページング)をリクエストし、そのデータ構造をテンプレートに適用し、htmlをクライアントにレンダリングすることです。私はあなたがクライアントサイドのテンプレートだけを使用することを示唆しているわけではありません - 私が両方で動くものを指摘した理由は、どちらの場合でもそれらを利用できるようにすることです。 –

+0

たとえば、リピーターのリスト項目のテンプレートが必要です。これをクライアントで使用すると、データのページをリクエストし、クライアント内ですべてバインドすることができます。ページヘッダに同じテンプレートを使用するとどうなりますか?私は確かにそのヘッダー情報のためだけにHTTP要求をするつもりはありませんが、私はこの1つの使用のために同じテンプレートをもう一度書きたくありません。これは、二重目的のテンプレートがすばらしくなる場所です。 (非常に長い投稿には申し訳ありません) –

1

他にも重要な点があります。あなたのウェブサイトの目的に応じて。あなたはSEOに注意を払う必要があるかもしれません。簡単な言葉で

、サーバから生成されたコンテンツは、検索エンジンでインデックス化されます。他にはありません。検索エンジンのクローラはクライアント側のコンテンツを気にしないためです。

+1

Google botはJavaScriptを実行するため、コンテンツレンダリングされたクライアント側はGoogleによってインデックス登録できます。 – Matt

関連する問題