5

私はこのチュートリアルに従って、これをビルドしました: http://x111.meteor.com/ しかし、ご覧のとおり、流星はクライアント側からデータをロードするため、ロードは非常に遅くなります。

Template内部でグローバルを使用したい場合、このエラーが発生しますMeteor.isServer

ReferenceError: Template is not defined
at app/products.js:56:3 ...

クライアントを待つ必要がないように、サーバー側からテンプレートを提供するにはどうすればよいですか?

4

4 に答える 4

6

これを試してください。このパッケージは、Meteor のサーバー側ハンドルバーのサポートを追加します。これは主に、Meteor がサーバー側のレンダリング サポートをリリースするまで、サーバー側の電子メール HTML の一時停止として意図されています。

> mrt add handlebars-server
于 2014-01-27T13:38:50.727 に答える
1

コードがクライアントのhtmlにある場合でも、テンプレートはサーバーで提供されます。それらに時間がかかる理由は、最初のロード時に流星コレクションがクライアントにダウンロードされるためのステップです。

更新:これはあなたが正確に求めていたものではないことを私は知っていますが、遅れの根本的な原因はテンプレートシステムではありません。

主要な問題は、ブラウザとサーバー間の遅延です。このラグを取り除く/他のWebサーバーの場合と同じように短くするには、サーバーを自分の近くに配置する必要があります。

サーバーを近づけることができない場合は、loading ...メッセージを表示して、データがまもなく利用可能になることをユーザーが認識できるようにすることができます。

{{#unless CartItems.count}}
    <tr>
        <td colspan="4">Loading...</td>
    </tr>
{{else}}
    {{#each CartItems}} 
        <tr>
           <td>{{Name}}</td>
           <td>${{Price}}</td>
           <td>{{Quantity}}</td>
           <td>${{Total}}</td>
        </tr>
     {{/each}}
{{/unless}}
于 2013-02-26T09:50:11.533 に答える
1

現在、これを行うための組み込みの方法はありませんが、サーバーサイド テンプレート レンダリングの追加は計画されている機能です (ロードマップにはまだ表示されていませんが)。

このバージョンの Spiderable は、検索エンジン専用です。Meteor の将来のバージョンでは、最初のページ読み込み時に HTML も Web ブラウザーに送信します。Meteor テンプレート システムは、このユース ケースをサポートするために特別に設計されました。

( http://meteor.com/faq/can-meteor-serve-static-html )

これは「ネットワーク経由でのみデータを送信する」という哲学に違反していると言う人もいますが、優れた SEO を必要とするサイトでは、サーバーとサーバーの両方で同じテンプレート言語とフレームワークを使用できる場合、これはかなり必要であり、非常に自然なことです。クライアント。

于 2013-04-10T18:30:28.597 に答える