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状态。我真的认为这是大多数开发人员忘记做的事情。浏览器的缓存正是为此。 –