【发布时间】:2011-08-04 00:15:30
【问题描述】:
我有一个显示用户帖子的 Rails 应用。用户帖子可以通过多种方式进行排序、分页、分类等。我通过 ajax 完成所有这些点击。
但是,每次我单击类别或排序参数或新页面时,它都会再次加载整个请求,然后以指定的方式返回它。有什么方法可以缓存我的第一个结果,然后快速排序、分页、分类?
【问题讨论】:
-
您的视图和控制器是什么样的?我想如果我们看到这些,你会更快得到答案。另外,“整个”请求是什么意思?是 SQL 执行了一个低效的查询还是只是一个页面渲染?
-
我们为我们的客户提供先进的匹配技术,这些技术基于很多标准,包括位置、行业、他们的个人资料中设置的特定偏好等,我们还执行一个算法来为每场比赛打分。每次加载新参数时,它都会执行所有这些操作(例如,
?page=2它会重新执行所有操作)。基本上,所有查询都发生在控制器中,而评分发生在模型中。 -
那么您阅读过 Rails 缓存指南吗? guides.rubyonrails.org/caching_with_rails.html 看来您可以缓存一些 SQL 以及构成页面的片段。
-
似乎我有缓存工作,但是,现在我无法摆脱它。我保存了一个旧视图,它不会在我的控制器或视图中加载任何更改。我怎样才能清除这个或强制到期?
-
如果您使用的是 memcached,过期将起作用。 Newrelic 有一些关于 Rails 缓存的视频。
标签: ruby-on-rails ruby ruby-on-rails-3