Iva*_*van 9 etag caching ruby-on-rails
使用etags/stale会有什么好处?/ fresh_when?而不是页面缓存(在文件缓存上)?
Apache自动处理静态文件的etags,但即使它没有,页面缓存仍然会更好,因为Rails应用程序甚至不会被调用.
那么,在什么情况下我会使用Rails提供的方法(过时?/ 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
Run Code Online (Sandbox Code Playgroud)
在用户拥有当前页面的情况下,它可以节省一些渲染时间和发送页面所需的带宽.
| 归档时间: |
|
| 查看次数: |
5252 次 |
| 最近记录: |