4

短縮版:

1つのhtmlファイルを提供し、ノードを使用してajax / socketsを使用してページ固有のデータをロードすることで完全にテンプレートを作成します。どのようなパフォーマンスが期待できますか?デザイン的に良いか悪いか?

ロングバージョン

私は現在、より良いノードをコーディングすることを学んでいます。私は長い間JavaScriptのファンであり、現在node.jsの良い/悪い習慣を理解しようとしています。

テンプレートを作成することを考えています。表示しているものと保存しているものを区別する方法に苦労しています。私はたくさんのMVC記事を読んでいて、面倒なコードを使わずにビューロジックを分離したいと思っています。

私の質問は:

私がウェブサイトを持っているとしましょう。そこにはユーザーが見る「画面」を表すいくつかのファイルが含まれています。この基本的な例では、ユーザーが見ることができるはずですIndex, About, Contact, Portfolio

これらのページを動的にロードする必要があります。つまり、これらの各ファイルのテンプレートを毎回更新する必要はありませんが、すべて非常によく似ています。

ノードは完全に非同期操作に基づいているので、それらすべてに同じ.htmlページを配信し、AJAX/webを使用しているページに基づいてサーバーからすべてのデータをロードするのはどれほど良い/悪いでしょうかソケット?

(単純に、name ='view'のすべてのセクションをループし、idなどでコンテンツをフェッチします)

これにより、ページの非同期読み込みが可能になり、サイトのレイアウトがサイトの他の部分から完全に切り離されると思います。これは私にとって非常にノードであり、ブロッキングはなく、すべてが非同期であると感じます。経験豊富な開発者の方からのご意見をお待ちしております。

また、node.jsを使用したサイトの構築に関連するヒントをいただければ幸いです。私はPHPのバックグラウンドを持っており、設計時にwebmatrixに似たものを避けたいと思っています。

4

2 に答える 2

2

この種の「シングルページサイト」のいくつかの落とし穴:

SEO:このコンテンツは、スパイダーがインデックスを作成するのが難しいでしょう。これは、ユーザーの電子メールなどの壁に囲まれたコンテンツにより適しています。

ナビゲーション:ユーザーが慣れているブラウザの動作を維持することは可能ですが、それについて明示的に考える必要があります-ブックマークはどのように機能しますか?戻るボタンはどうですか?

従来の方法でページを配信する方がよい場合があります(バックエンドのノードでテンプレートをレンダリングできない理由はありません)。次に、クライアントコードとキャッシュシステムを最適化して、2番目のページがすばやく読み込まれるようにします。.cssまたは.jsを再フェッチする必要はありません。

于 2012-07-05T21:01:24.287 に答える
1

これの単純な概念は、いくつかのレイアウトテンプレートといくつかのパーシャルがあるということです。これらのテンプレートは、JSファイルであるかのようにロードします(コンパイル時のものです)。コンパイルされたテンプレートをどこかのグローバルオブジェクトに設定できます。App.templates.portfolio=JST["templates/portfolio"]。アプリケーションに対してこれを1回実行します。これらのテンプレートは、ブラウザのlocalStorage、リバースプロキシなど、どこにでもキャッシュできます。

ユーザーが「ポートフォリオ」をクリックすると、サーバーはJSONを送り返し、サーバーから返されたデータを使用してブラウザーで「ポートフォリオ」テンプレートをコンパイルします。

https://github.com/sstephenson/eco/ は、この目的に非常に適しています。他にも同じように良い、またはさらに良いものがたくさんあります。それはすべて個人的な好みです。翡翠は私のお気に入りです。

ほとんどのMVCフレームワークには、これらの1つが含まれています。

単純なページベースのサイトがある場合、ノードは最良のオプションではない可能性があります。あなたはすでにこれを知っていると確信しています。

于 2012-07-05T20:51:24.843 に答える