2016-03-14 41 views
1

我讀的文檔和我碰到這樣的代碼來:緩存。瀏覽器VS Rails的緩存

class Product < ActiveRecord::Base 
    def competing_price 
    Rails.cache.fetch("#{cache_key}/competing_price", expires_in: 12.hours) do 
     Competitor::API.find_price(id) 
    end 
    end 
end 

這被認爲是低級別的緩存(緩存的值或查詢結果)的例子。所以我認爲這個緩存是服務器端發生的事情。它在12小時後過期。所以無論何時調用competing_price,無論它來自API的用戶還是內部使用,緩存的結果都是從實際的Rails應用程序中傳遞而來的,並且此緩存存在於服務器端?

什麼樣的東西存儲在瀏覽器端? Chrome實際存儲在緩存中的是什麼? Javascript文件? HTML文件?圖片?

在Akamai上的代理服務器上如何?

+0

「Javascript文件?HTML文件?圖像?」 - 是的,您的應用所服務的所有文件/內容都可以(也可能會)由瀏覽器緩存(或通過代理/代理進行緩存)。又是什麼問題? –

+0

服務器緩存和瀏覽器緩存有什麼不同?他們使用不同嗎?通常存儲在每個中的什麼? – Jwan622

+0

服務器應該緩存重負載/計算的東西,它在給定的時間段內並沒有真正改變(如每次用戶進入排名頁面時都不計算的Stackoverflow的聲譽排名)。瀏覽器應該緩存服務器收到的一段時間內沒有改變的東西(如橫幅圖像,JavaScript文件,徽標等)。 – MrYoshiji

回答

1
  • 服務器緩存東西重加載/計算並沒有真正在給定時間內改變。 (例如,產品的顯示頁面,靜態頁眉/頁腳,每X分鐘重新計算統計信息等)。

  • 瀏覽器應該緩存服務器接收的事情在一段時間內沒有改變(如橫幅圖像,JavaScript文件,標誌等)。