2015-09-20 32 views
-1

我是流星的新手。我打算向收集(客戶端+服務器)添加一個新文檔,並讓服務器選擇更改。然後,當我需要更新我的模板與集合上的所有插入/更新/刪除的總和時,我從服務器發佈集合並在客戶端上訂閱它。關於流星酒吧的多個問題

  1. 一旦我們發佈的東西,我們可以訂閱,訂閱停止,然後重新訂閱?我打算僅在客戶端上的「添加文檔」按鈕被按下時才訂閱。在處理這種點擊的函數中,我打算插入,然後調用服務器上的方法來發布然後訂閱。這是一個正確的方式去做這件事嗎?

  2. 有沒有辦法簡化這個?就像我把文檔插入或更新到客戶端集合中一樣,讓Meteor處理更新服務器端集合,然後更新客戶端模板?

  3. 在我看來,從我所學到的知識來看,對於我所用的一些用例,需要在每次點擊時發佈。我已經做了這個更新反應表來列出當前文件夾的內容,每次選擇一個文件夾。因此,服務器上的發佈會檢查該文件夾集合中的內容作爲父項,並將其返回。每個新選擇的文件夾都意味着新的發佈。可以做些什麼來簡化這個?

+0

你有沒有做過任何的教程? –

+0

我做到了。所有這些都展示了發佈 - 訂閱的簡單方法。我還沒有找到答案,我可以退訂多少次,並重新訂閱等問題,我問。 – Ram

+0

你可以不斷更改你的訂閱 –

回答

1

您正在過度複雜Meteor背後的核心概念之一:反應性。以下是對您的3個問題的一些澄清:

  1. 這不是您需要擔心的問題。一旦您發佈了 集合或集合的子集,它就會發布到所有連接的客戶端 。當您訂閱該發佈時,所做的任何 更新都會被動地下拉到所有具有該訂閱的連接的 客戶端。因此,如果我將文檔添加到我訂閱的 集合(稱爲任務列表),它將被動地發送到訂閱它的任何客戶端 ,包括我自己的 。

  2. 流星有一種叫做延遲補償的功能,它立即更新用戶界面,並且只要它與服務器說的 相匹配,插入看起來就是瞬間發生的。如果您插入來自客戶端的 集合(只要您的插入已獲批准(即只要客戶端有權插入該集合)即可),此 行爲就是Meteor默認執行的操作。

  3. 您不需要每次重新發布。只要你發佈 你需要集合中的文件,而你訂閱的 客戶需求,滿足您的蒙戈 選擇的標準,並返回客戶端上的報表有任何新的文件將提供給您 你的用戶界面會自動更新。