gpt4 book ai didi

ruby-on-rails - Rails - etags 与页面缓存(文件缓存)

转载 作者:行者123 更新时间:2023-12-02 04:12:44 24 4
gpt4 key购买 nike

使用 etags/stale?/fresh_when 有哪些优点?而不是页面缓存(在文件缓存上)?

Apache 会自动处理静态文件的 etag,但即使不这样做,页面缓存仍然会更好,因为 Rails 应用程序甚至不会被调用。

那么,在什么情况下我会使用 Rails 提供的方法(stale?/fresh_when?)?

最佳答案

他们真的很互补。 Etags/fresh_when 等帮助您很好地处理下游缓存(例如您自己的 Varnish/Squid 实例或 Rack::Cache 或浏览器缓存或 ISP 代理服务器...)

页面缓存可以让您完全避免碰到 Rails 堆栈,因为 Apache/您的 Web 服务器提供文件服务,因此不需要进行数据库查找。但您必须处理缓存过期问题以保持缓存新鲜。

使用 etags/conditional get,您不会节省太多处理时间,因为您仍然需要获取页面上使用的所有记录:

def show
@article = Article.find(params[:id])
@feature = Feature.current
fresh_when :etag => [@article, @feature]
end

如果用户有当前页面,它可以节省一些渲染时间和发送页面所需的带宽。

关于ruby-on-rails - Rails - etags 与页面缓存(文件缓存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/832035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com