2013-03-14 64 views
0

我正在使用哈姆和俄罗斯娃娃在轨道缓存。我的目标是缓存尽可能多的静态html,并只渲染动态内容。但是,我经常有大量未经过缓存的html,因为中间有一小段动态代码。缓存包含动态内容的静态html的最佳方式是什么?

假设我有含2分音这样的观点:

show.html.haml

= render 'message' 

_container.html.haml

.nested 
    .divs 
    = render 'dynamic' 

_dynamic.html。哈姆

= complex_stuff 
.something 
    = more_complex_stuff 

我无法将_container部分封装在缓存块中,因为它包含动态内容。我知道我可以根据动态部分中的因变量来锁定缓存块,但假设动态部分的复杂度太高而无法缓存。

什么是解决此问题的好方法?

回答

-1

我写了一个宝石来解决这个问题:

https://github.com/neighborland/cache_rocket

+0

你应该运行一些基准测试来检查,这实际上是给你任何好处;我怀疑这会有所帮助。缓存纯静态内容几乎没有什么收获(可能会失去一些东西),我怀疑额外的'sub'调用会损害性能。 – matt 2013-03-15 19:05:09

+0

好点。在早期测试中,渲染速度提高了15-20%。这当然取决于你能够缓存多少html。 – tee 2013-03-15 22:03:24

+0

其实在缓存静态html内容方面有很大的收获,这就是我为什么要这样做的原因。 – tee 2013-03-15 23:09:54

相关问题