2016-12-05 237 views
0

我訂閱用戶和產品,分別給出約5000和7000文檔。我使用這些數據在用戶和產品表單中進行typeahead搜索。如果我們在表單渲染上訂閱,那麼表單花費太長時間才能加載,所以我們在Meteor.startup上訂閱,但這也會使我們的啓動時間變慢。延遲流星訂閱,直到有更多的資源可用

我們如何讓訂閱在第一個屏幕完成加載後運行,而無需觸摸第一個屏幕的代碼?我不想在firstScreen.onRender()內部進行訂閱,因爲根據輸入的網址可能會有多個第一屏幕。

我試着在Meteor.onStartup中做Meter.defer,但是沒有奏效。

另外,有沒有更好的方式來完成語義超越加載所有的數據typeahead?

任何想法?

回答

0

我強烈建議您使用Pattern'Template-Level Subscriptions'來確保您的數據已準備好到您的模板中。 這裏是解釋這個鏈接 - >https://www.discovermeteor.com/blog/template-level-subscriptions/

我希望幫助,

+0

這就是問題...如果我裏面的模板onCreated訂閱,然後在模板時間過長加載。因此我想在訂閱之前訂閱它,理想情況下客戶端並不忙碌。 – Simon

+0

我明白你的觀點。但是如果你在實現之前實現了一種加載數據的方式,那麼在性能上就不會有真正的收益。加載時間的總和將是相同的。我推薦一種新的方法,你真的需要在你的模板上的所有5000,7000文檔嗎?如何加載部分?分頁或通過滾動頁面加載。你會改善你的加載時間,保證 –

+0

謝謝。我明白你的意思是「總加載時間將是相同的。」即使它是相同的,如果在客戶端不忙時完成,它是否可以被認爲更快?是的,我們確實需要所有文檔,因爲它是由語義提供的可搜索下拉菜單。 – Simon