2015-07-11 59 views
0

我有一個多頁應用程序與幾條路線。每個路由的訂閱都使用「waitOn」實現,並且工作正常。Iron Router呼叫訂閱多少次?

我注意到,當我瀏覽到不同的頁面,以前的路線的訂閱被丟棄。到目前爲止,沒有問題。

我實現的Router.configure水平「waitOn」通話,讓特定的訂閱可以從所有頁面。

我的問題是:有沒有鐵路由器使該訂閱我每次切換頁面的新呼叫?我擔心這會浪費服務器資源。

謝謝。

回答

0

是的,當您在瀏覽回到那個頁面流星重新訂閱切換頁面上一訂閱下降,後來。

有一個社區包氣氛緩存訂閱:https://github.com/meteorhacks/subs-manager

+0

謝謝,我覺得這個包會爲我有用以後。事實證明,Iron Router每次切換頁面時都會在Router.configure級別調用訂閱。 – Kavy

0

所以要就此展開,我沒有更多的測試,它看起來像即使鐵路由器試圖運行相同Router.configure訂閱每次頁面切換後,服務器似乎只運行一次發佈功能(我在發佈功能中放置了一個console.log以查看)。

我認爲這是由他們的文檔解釋:

如果使用Tracker.autorun反應計算中調用Meteor.subscribe,爲 例如,預訂將自動取消 時計算無效或停止;這不是 需要呼叫停止對自動運行內的訂閱。 但是,如果您的run函數的下一次迭代訂閱了 相同的記錄集(相同的名稱和參數),流星很聰明,可以跳過浪費的取消訂閱/重新訂閱。

+0

啊,我無法找到它,但@akshat了這一切對SO某處一個很好的寫了。儘管服務器只運行一次發佈,但必須重新將所有數據重新發送到客戶端。 –