[英]In Meteor how to render the templates on server side?
我遵循了本教程並用它構建了它: http : //x111.meteor.com/但是你可以看到加載速度非常慢,因為meteor從客戶端加載數據。
當我想在Meteor.isServer
使用全局Template
時,我收到此錯誤:
ReferenceError: Template is not defined
at app/products.js:56:3 ...
如何從服務器端提供模板,以便我不必等待客戶端?
試試這個 。 該軟件包增加了對Meteor中服務器端Handlebars的支持。 在Meteor發布服務器端渲染支持之前,它主要用作服務器端電子郵件html的止損。
> mrt add handlebars-server
即使代碼在客戶端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}}
目前沒有內置的方法來實現這一點,但添加服務器端模板渲染是一項計划的功能(雖然我還沒有在路線圖上看到它):
此版本的spiderable專門針對搜索引擎。 Meteor的未來版本還將在初始頁面加載時將HTML發送到Web瀏覽器。 Meteor模板系統專為支持此用例而設計。
( http://meteor.com/faq/can-meteor-serve-static-html )
雖然人們會說這違反了“僅通過網絡發送數據”的理念,但對於需要良好搜索引擎優化的網站來說,這是非常必要的,當服務器和服務器都具有相同的模板語言和框架時,這也是很自然的事情。客戶。
如果您在Node.JS框架中尋找這種類型的功能,我建議使用Derby.JS http://derbyjs.com/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.