2016-05-12 75 views
2

我通過中繼緩存文檔閱讀,但它感到困惑。中繼緩存如何工作?

任何人都可以解釋primeCache是​​如何工作的以及它應該如何使用?

首先,我甚至不會100%肯定緩存是在瀏覽器中,還是在服務器端?我猜這是在瀏覽器中,因爲他們確實在談論客戶端緩存,對吧?

我也讀過這個question,它讓我更困惑。它說

如果Flux商店需要訪問服務器數據,他們可以使用Relay.Store API從服務器獲取數據並從緩存中讀取數據。

我不明白,如果它要從緩存中讀取它,那麼爲什麼它需要從服務器獲取數據?沒有任何理由說實話。除非它真的是服務器緩存而不是瀏覽器緩存?此外,如果你看一下關於Relay.Store中繼文檔(這確實涉及到primeCache),他們說:

接力賽商店提供調度突變到服務器的API。

如果我理解正確,那些突變會改變服務器端的數據。這意味着他們通過商店查詢服務器端。並且因爲您使用商店訪問primeCache,這可能意味着緩存可能真的是服務器端mm。

什麼時候可以調用primeCache?如果緩存中沒有任何東西,並且您打電話給它,會怎麼樣?它是否從服務器獲得結果?

請幫忙

回答

1

你已經有了它的要義。 Relay背後的想法是,它可以幫助您像React一樣爲您的HTML「組件化」您的查詢和突變。 Relay將您的React組件與專門針對該組件所需的組件相結合,並將其優化呈現給您的前端應用程序。

現在,緩存的工作原理是將每段數據與唯一的ID相關聯。您通過Relay向GraphQL服務器發出的聲明性查詢和突變將在服務器上找到該數據片段,並通過該唯一標識符將其與前端緩存進行比較,並僅更新差異。您可以將它想象成它是您的前端管理的前端數據的版本控制,該前端稱爲「繼電器緩存」。