在Meteor中如何在服务器端渲染模板?

Ada*_*dam 5 html javascript handlebars.js meteor

我遵循了本教程并用它构建了它:http://x111.meteor.com/ 但是你可以看到加载速度非常慢,因为meteor从客户端加载数据.

当我想使用全局Template内部时,我收到此错误Meteor.isServer:

ReferenceError: Template is not defined
at app/products.js:56:3 ...
Run Code Online (Sandbox Code Playgroud)

如何从服务器端提供模板,以便我不必等待客户端?

nef*_*lar 6

试试这个.该软件包增加了对Meteor中服务器端Handlebars的支持.在Meteor发布服务器端渲染支持之前,它主要用作服务器端电子邮件html的止损.

> mrt add handlebars-server
Run Code Online (Sandbox Code Playgroud)


Aks*_*hat 1

即使代码位于客户端 html 中,模板也会由服务器提供。它们花费很长时间的原因是流星集合在第一次加载时下载到客户端的步骤。

更新:我知道这并不是您所要求的,但延迟的根本原因不是模板系统。

核心问题是浏览器和服务器之间的延迟。您需要将服务器放置在离您更近的地方,以消除这种延迟/使其更短,就像任何 Web 服务器一样。

如果您无法靠近服务器,您可以显示一条正在加载...消息,以便用户知道数据很快就会可用。

{{#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}}
Run Code Online (Sandbox Code Playgroud)