我有一个返回 json 输出的控制器索引操作。
render :json => my_array.to_json
我必须在这里使用什么类型的缓存。“页面缓存”对此是否有意义。
还是我必须像下面那样做动作缓存
caches_action :index
我有一个返回 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。如果您需要验证用户对数据的访问权限,那么操作缓存是可行的方法,否则页面缓存应该没问题。
如果数据由于您的应用程序中的逻辑而发生变化,那么这两种形式的缓存都是有问题的,您最好使用其他方式。