2012-05-28 33 views
2

我正在开发一个社交网络应用程序,用户可以相互关注。带动态内容的Rails碎片缓存

为了加快速度,我在用户的预览和完整页面视图上添加了片段缓存。

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

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

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

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

也许我可以通过ajax加载按钮。但后来...

  • 我应该为每个按钮提出一个请求吗?
  • 我应该把他们全部收集起来,以防止有很多请求?怎么样 ?
  • 有没有更好的方法?

您怎么看? :)

+0

答案2年后被接受...... – StaticVoid

+0

迟到比从未好过吧? :d –

回答

1

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

不,你应该捆绑在一起,因为这将是比每个按钮都有一个请求快得多

我应该集合他们,以防止有很多的请求?怎么样 ?

是的,你知道所有的对象显示在一个页面上,所以你应该能够收集所有用户的id被跟随,并要求他们遵循的状态。

有没有更好的方法?

没什么我能想到的,但这并不意味着没有更好的方法。