0
我有一個產品頁面。該節目的行動具有下面的代碼:我應該如何緩存一個應該跟蹤每個視圖的頁面?
def show
...
LiveView.add_live_view(@product, request)
...
end
在這同一個控制器,如果我有:
caches_action :show, :cache_path => (proc do
product_path(params[:id], :user_id => user_signed_in? ? current_user.id : nil)
end)
我想顯示實時視圖,從request
搶奪IP地址。所以,我需要跟蹤每個瀏覽頁面的視圖。但是,如果頁面已被緩存,它將永遠不會觸發LiveView.add_live_view(@product, request)
方法。
問題是。我應該緩存這個動作嗎?如果是這樣,應該怎麼做?或者我應該忘記這種方法的緩存?
我應該考慮一種不同的緩存方法嗎?有什麼建議麼?
我喜歡這個規則。不過,我聽說最好總是緩存一個「show」頁面。如果同一用戶決定點擊重新加載按鈕或再次訪問同一頁面,這是有益的。你對此有何看法? –
我忘了提及,我們的應用程序在Heroku上運行。所以不要認爲我們有權訪問應用程序層。 –
首先我會檢查什麼是不緩存任何東西的影響。此外,如果您有網站分析,請檢查有多少人實際刷新頁面。最後,如果您決定緩存此頁面,請先檢查時間戳,如果沒有更改,則返回304狀態。我真的認爲這是大多數開發人員忘記做的事情。瀏覽器的緩存正是爲此。 –