这个问题基于2篇文章:
- 来自37signals的DHH的Basecamp Next
- Adam Hawkins 在Rails中的高级缓存
我对使用俄罗斯娃娃缓存的性能影响有点困惑,具体来说:
使用自动过期密钥时,似乎每个请求都会导致访问数据库以获取对象时间戳 - 我错过了什么吗?(我知道在最好的情况下,你必须只为层次结构中的顶级键做到这一点,但仍然......)
在第1篇文章中,他们缓存了一个待办事项列表,以及每个待办事项.缓存列表非常有意义,因为它节省了大量工作(所有项目的数据库查询).但为什么要缓存单个项目?您已经访问数据库以获取Item时间戳,那么您究竟要保存什么?生成一些html行?
在第二篇文章中,Adam缓存了这样的视图块:
cache [post, 'main-content']...
cache [post, 'comments']
当添加注释时,它会更改帖子的时间戳,因此会使两个entires无效.但是,main-content没有改变 - 你不想再生它!如何才能使评论无效.(这实际上是一个非常常见的用户案例 - 一个具有一些逻辑上独立的部分的模型:对象本身,不同的关联,某些其他商店中的数据等)
对我来说,只有当你有一个深层次的嵌套对象时,俄罗斯玩偶缓存才有意义.(在basecamp中你有project-> todos list - > todo - > items list).但是,如果您的层次结构较浅,则最好自己进行无效.
对于任何反馈,我们都表示感谢!
谢谢.
我需要能够配置ActiveResource以连接为基础连接OAuth2或基本身份验证.我找到了几种使用OAuth2配置ActiveResource的方法,但它们看起来并不优雅,也不适合动态类型配置.有帮助吗?
有谁知道37 Signals如何构建现在在basecamp中的图像预览的弹出窗口?我真的很喜欢它们的加载速度以及整个页面没有"光盒"并且边框最小的事实它非常活泼.您可以在营火的营销页面上看到此效果:
http://campfirenow.com/?source=37signals+home
只需点击计划和定价下方的图片之一即可.
这是自定义的JavaScript吗?他们使用的是某个javascript库吗?谁知道?