簡體   English   中英

Meteor,如何使用樂觀 UI 更新集合

[英]Meteor, how to update collection with optimistic UI

在我的應用程序中,我將方法放在客戶端和服務器之間的共享位置。 按照meteor docs中的建議,這種方法機制負責樂觀UI。

但我剛剛在 David Weldon博客中閱讀了有關兩層實現的內容,這對我來說很有意義。

問題是如何通過兩層實現實現樂觀 UI。

  1. 將方法移動到服務器,在樂觀 UI 的模板事件中更新 clientDB,並拒絕從客戶端到 DB 的所有更新。

  2. 有什么方法可以在客戶端使用方法,但只能從另一個方法調用?

任何建議的方法將不勝感激。

我認為重要的是拒絕客戶端插入/更新。 完成后,您可以從客戶端運行第二層代碼,它實際上不會做任何事情,因為它將被拒絕。

以下是https://www.discovermeteor.com/blog/meteor-pattern-two-tiered-methods/中支持該觀點的幾段:

客戶端服務器

雖然我說過 postSubmit 函數主要希望在服務器上運行,但它會在兩種情況下在客戶端上運行。

首先,當作為該方法的客戶端模擬的一部分從 postSubmit 方法調用時。 在這種情況下,Meteor 將執行模擬,將 post 插入客戶端數據庫,然后最終觸發服務器端 postSubmit 方法調用。

另一個用例是有人直接從瀏覽器控制台調用 postSubmit 函數。 如果發生這種情況, Posts.insert() 調用將失敗,因為我們不允許客戶端插入,並且什么也不會發生。

請注意,允許/拒絕不會影響從 Meteor 方法中執行的代碼,這就是為什么即使您沒有聲明允許/拒絕策略,模擬也不會失敗。

因此,換句話說,回答 #1:將方法放在一個公共位置並刪除不安全的包(流星刪除不安全)

對#2 的回答:在方法之外調用它們並不重要,因為它們會被拒絕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM