rails:真实世界中的 Rails 第 2 部分: 高级页面缓存Cache

  有了页面缓存CacheRails 就可以不再介入在某种程度上这是件好事确可以获得优秀性能Rails 只需创建 HTML 页面将其放入目录的后就可以置的于脑后从那时起就由应用服务器管理这些页面且页面进入应用服务器无需任何循环从性能角度而言页面缓存Cache真是天赐的福

  我也钟爱页面缓存CacheRails 使的简单利落只需使用行代码就可以启用缓存Cache如果再加入些代码就能通过简单地删除文件操作或使用 Rails 较高层 API 终止缓存Cache这里存在个问题并不是每个网站WebSite都能使用页面缓存Cache如果页面上数据会根据访问它用户而改变那么就不能进行页面缓存Cache而且如果很难判断页面何时到期终止就会发现页面缓存Cache要求太过苛刻

  比如几乎在每个页面上ChangingThePresent.org(参阅 侧栏)都有某些用户数据是根据当前登录用户而变化图 1 显示了我们最新主页部分(我们直在努力完善它所以它有可能会改变)这个页面呈现出问题相对简单如果能判断用户是否已经登录就可以用 Flash、JavaScript、DHTML 或任何其他基于浏览器代码动态定制视图您会发现已登录用户可以登出系统或查看其配置文件而已登出用户则可以注册或再次登录

  图 1. ChangingThePresent.org 上登录和登出视图

  }
}



  请注意 条件中 handle_cached_user 下面还有额外两行代码这两行代码可以在使 logged_in DOM 元素可见的前进行适当替代剩下所需做就是使用本篇文章和 上个月 那篇文章中所介绍页面缓存Cache指令来缓存Cache整个页

  结束语

  本篇文章中介绍这种高级窍门技巧为我们打开了许多方便的门在 ChangingThePresent.org 上我们估计使用非常简单基于时间清除器能够缓存Cache超过 75% 页面通过使用稍微有些复杂清除窍门技巧我们就能缓存Cache超过 90% 页面而且还可能更多如果您想试图影响我们图像缓存Cache计划那么您只能触及应用服务器 1% 到 3% Web 请求

  但同时我们也应该看到不利我向此系统添加了明显复杂性我必须维护更加复杂 HTML 代码并确保 HTML 和 JavaScript 能够保持同步但好面是在需要获得更好性能时我就能够使用最为简单和有效缓存Cache技术您也可以尝试使用这种窍门技巧 — 访问 ChangingThePresent.org 并加载主页接下来加载每个顶端菜单您会发现我们会页面缓存Cache 6个顶端菜单中 4个创建个帐号并重载每个菜单您能猜到哪个页面被缓存Cache了么?在下篇文章中在继续深入真实世界中 Rails 同时我将带您探究能增进 ActiveRecord 性能些窍门技巧



Tags:  rubyonrails教程 rubyrails rubyonrails rails

延伸阅读

最新评论

发表评论