2014-09-19 54 views
3

我正在尋找使用流星建立一個實時數據應用程序,因爲流星做了很多實時更新和其他相關的東西本身。唯一阻止我的是Meteor將所有文件(公共和服務器文件夾中的文件除外)下載到客戶端。比方說,我正在開發一個包含這麼多模塊的非常大的應用程序。只有某些模塊可用於某些用戶。所以與其他模塊相關的所有代碼都將不必要地下載。初始頁面加載也需要很長時間。可能會有一些安全問題。在流星的最新版本(0.9.x)中是否可以按需加載客戶端代碼?

我嘗試使用IRLibloader插件通過將它們放在公共文件夾中加載JS文件。那麼有沒有一種方法可以配置Meteor,只需下載所需的代碼,然後在必要時下載其他模塊的代碼?如果這是不可能的,那麼請你引導我使用Meteor的其他良好實踐。

預先感謝您。

回答

2

這是可能的。完整的解決方案是anti:modules包。首先,它添加到應用程序:

meteor add anti:modules 

然後創建您的項目中/layers文件夾,將您的可選文件在其子文件夾:

/ 
    layers 
    fancyModule 
     someFile.module.js 
     anotherFile.module.js 
     ... 

然後在你的代碼中創建一個全局模塊:

theApp = Module('$global').as('myApp'); 

並在必要時加載:

theApp.require('fancyModule', function() { 
    console.log('fancyModule code loaded'); 
}); 
+0

謝謝。這是一個很棒的軟件包。看起來你是其中的貢獻者之一。您的路線圖中是否有任何目標支持css文件? – Kishor 2014-09-19 09:37:19

+0

是否可以在'* .module.html'文件中定義模板?我在我的'example.module.html'中定義了一個模板。在'Router.map'中,我使用WaitOn方法在導航到「/ example」路由時加載示例模塊。但我得到這個'找不到名爲「示例」錯誤的模板。請幫忙。 – Kishor 2014-09-22 02:20:14

相關問題