我有一个控制器索引动作返回JSON输出。

render :json => my_array.to_json

什么类型的缓存我必须在这里使用。对于这是否“页面缓存”是有意义的。

还是我必须做动作缓存象下面

caches_action :index
有帮助吗?

解决方案

无论哪种动作缓存或页面缓存会工作得很好;页面缓存将有从未调用堆栈Rails的好处,但它取决于你是否需要控制谁可以访问该JSON提要。

我使用页面缓存的忠实粉丝,如果你能摆脱它 - 有对系统资源大大节省可拿。 :)


编辑:页面缓存例如,在情况下,没有任何混淆:

class SomeController < ApplicationController
  caches_page :index
  def index
    render :json => my_array.to_json
  end
end

除非我误解的东西,这应该是所有你需要做的。

其他提示

相同的考虑应适用于JSON作为任何其他输出。如果您需要验证访问用户的数据,那么动作缓存是要走的路,否则页面缓存应该罚款。

如果由于您的应用程序逻辑数据变化,那么缓存的两种形式是有问题的,你最好使用别的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top