Rails片段缓存与动态内容

时间:2012-05-28 10:26:38

标签: ruby-on-rails ruby-on-rails-3 caching optimization dynamic

我正在开发一个社交网络应用,用户可以互相关注。

为了加快速度,我在用户的预览和整页浏览中添加了片段缓存。

好消息是应用变得非常快。 糟糕的是我开始遇到与按钮相关的错误。

事实上,所有用户预览和完整页面浏览都有一个跟随块,无论用户是否登录,看到他的个人资料,看到其他人已经跟踪或看到其他人没有被跟踪,就可以有不同的4个状态。

为了解决这个问题,我结束了每个用户预览的不同缓存版本和4种不同状态中的每一种的完整页面视图(=每个用户8个不同的缓存片段)。问题现在已经消失,但我不禁认为这远非最佳状态。

然后我听说Ryan Bates' Railscast on dynamic fragment caching并开始思考。

也许我只能通过ajax加载关注按钮。但是......然后......

  • 我应该为每个按钮发出一个请求吗?
  • 我应该把它们全部收集起来以防止收到很多请求吗?怎么样?
  • 有更好的方法吗?
你怎么看? :)

1 个答案:

答案 0 :(得分:1)

  

我应该为每个按钮发出一个请求吗?

不,你应该将它们捆绑在一起,因为它比每个按钮一个请求快得多

  

我应该把它们全部收集起来以防止有很多请求吗?怎么样?

是的,您知道在一个页面上显示的所有对象,因此您应该能够收集要遵循的所有用户ID,并询问他们的跟随状态。

  

有更好的方法吗?

我无法想到任何事情,但这并不意味着没有更好的方法。