gpt4 book ai didi

ruby-on-rails - Rails 缓存(内容与页面/操作/等)

转载 作者:数据小太阳 更新时间:2023-10-29 07:51:20 32 4
gpt4 key购买 nike

什么是内容缓存(就像这里的这个插件:http://blog.codahale.com/2006/04/10/content-only-caching-for-rails/)与 Rails 内置的页面/操作/片段缓存?

我想在我的 Rails 应用程序上进行缓存,但我不太清楚该使用哪种类型。我的应用程序在每个页面上都有大部分动态的、用户特定的数据。这甚至可以缓存吗?

最佳答案

This guide对 Rails 的内置缓存替代方案进行了很好的概述。但总而言之:


页面缓存:第一次请求 Controller 操作时,会将整个生成页面的副本写入静态 .html 文件,以便下次有人请求相同的操作时,可以通过Web 服务器,而无需访问您的 Rails 应用程序。这非常快,但有局限性,例如对缓存页面的请求不会通过您的应用程序,因此您不能使用过滤器进行身份验证和限制页面访问。

操作缓存:请求总是从网络服务器发送到您的 Rails 应用程序,以便您的过滤器运行,但如果请求通过过滤器并且操作被缓存,那么缓存的副本将被服务器而不是服务器实际上在您的 Controller 操作中运行代码。限制:向所有用户提供相同的缓存内容,因此页面不能有任何个性化数据(例如在标题中显示登录的用户名)

片段缓存: Controller 操作的代码运行,但在 View 中可以缓存页面的各个 block 。例如如果我们在边栏中有一些计算密集型的东西。


您链接到的插件添加了额外的粒度层。缓存操作内容但不缓存布局内容,因此如果布局包含 <%= curent_user.full_name %>例如,这仍将针对每个用户进行个性化设置。

如果您有大量用户特定数据,但每个用户在合理的时间段内仍保持不变,那么您可以查看 caching at the ActiveRecord query level而不是在 View 级别。

关于ruby-on-rails - Rails 缓存(内容与页面/操作/等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221764/

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