zoukankan      html  css  js  c++  java
  • ruby -- 进阶学习(十二)fragment cache

    基于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/

  • 相关阅读:
    Win10导出查看删除已安装的证书
    Tomcat配置https访问
    SpringBoot启用https
    使用OpenSSL证书操作详解
    sed命令常用用法
    Jenkins安装第一个插件和通过离线安装包进行安装
    CentOS设置主机名称
    Jenkins使用过程中遇到的问题
    Visual Studio 最新插件
    文章去格式
  • 原文地址:https://www.cnblogs.com/lmei/p/3304361.html
Copyright © 2011-2022 走看看