• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ruby -- 进阶学习(十二)fragment cache

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

基于rails4.0环境

Rails 页面缓存的方法很多,最近弱弱地尝试了fragment cache,用法还算简单~@_@||

首先,查看config/environment/production.rb

config.action_controller.perform_caching = true

确保上面代码是true状态。

fragment cache是用来对页面进行片段缓存的,首先在你需要缓存的页面加上两行代码,示例如下:

<!--  views/test/index -->
<% cache do %>
   …… ……           <!-- 页面中需要缓存的界面代码片段 -->
<% end %>

开启服务器后,在控制台可以看到

 Read fragment views/793d6c4d2de9d1ed07625eb5944c26d4 (1.0ms)
Write fragment views/793d6c4d2de9d1ed07625eb5944c26d4 (78.0ms)

这说明已经帮你把页面进行缓存,文件名是MD5产生的32加密数

从上面可以看到,它会去寻找缓存页面,如果读不到就会添加到缓存

当你再重新刷新该缓存的页面时,在控制台可以看到

Read fragment views/793d6c4d2de9d1ed07625eb5944c26d4 (2.0ms)

会发现,这次它读到缓存页面了,所以不再write

 

 fragment 缓存默认存放的位置是tmp/cache文件夹中,打开文件夾后看到已经被加密的缓存文件

如果你想在将缓存文件名附上id标识的话,那么只需要做小小的修改

<!--  views/test/index -->
<% cache @id do %>
   …… ……           <!-- 页面中需要缓存的界面代码片段 -->
<% end %>

加上@id就行~~

在控制台看到的如下:

 Read fragment views/2/793d6c4d2de9d1ed07625eb5944c26d4 (1.0ms)
 Write fragment views/2/793d6c4d2de9d1ed07625eb5944c26d4 (78.0ms)

上面标识的2就是@id的值~~

 

当进行更新、创建、删除等操作时,需要对之前缓存页面进行清除

那么只需在controller加上下面这句,

expire_fragment((%r"#{@id}"))

切记,不要写漏了" %r ",因为生成的缓存页面是随机的MD5加密数,去查看缓存页面存放位置的时候,会发现那些文件夹和文件都是加密的,一个文件夹里有一个文件

所以用 %r"#{@id}" 可以找到@id为首的文件夾,例如:“2/(此处省略32位MD5加密数)",然后将其清除

如果想把缓存页面存于,例如:myfile/2 ,”2“表示@id的一个取值,只需要修改如下:

<!--  views/test/index -->
<% cache "myfile#{@id}" do %>
   …… ……           <!-- 页面中需要缓存的界面代码片段 -->
<% end %>

然后清除缓存的代码改为:

expire_fragment((%r"myfile/#{@id}"))

 

附:一些不错的知识链接

cache_digests: 解决层层嵌套cache问题,http://blog.xdite.net/posts/2012/09/02/cache-digest-new-strategy

几种cache方法的比较和使用:http://www.sitepoint.com/caching-cache-digest/


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MacOSX安装Ruby发布时间:2022-07-14
下一篇:
ruby的include与extend发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap