KJF*_*KJF 10 caching ruby-on-rails page-caching
我很确定我可以对我的绝大部分网站进行页面缓存,但阻止我这样做的一件事是我的flash消息不会显示,或者它们会在错误的时间显示.
我正在考虑的一件事是将flash消息写入cookie,阅读它并通过javascript显示它,并在消息显示后清除cookie.有没有人有这样的成功或有更好的方法?
谢谢.
可缓存的闪存执行此操作:
在您的应用程序控制器
after_filter :write_flash_to_cookie
def write_flash_to_cookie
cookie_flash = cookies['flash'] ? JSON.parse(cookies['flash']) : {}
flash.each do |key, value|
if cookie_flash[key.to_s].blank?
cookie_flash[key.to_s] = value
else
cookie_flash[key.to_s] << "<br/>#{value}"
end
end
cookies['flash'] = cookie_flash.to_json
flash.clear
end
Run Code Online (Sandbox Code Playgroud)
然后通过Javascript读取"flash"cookie并在HTML中插入消息
一种解决方案是缓存页面,但包含一个 JavaScript 片段,该片段将针对您想要动态的部分发出另一个小请求。因此,用户将完全下载页面,然后当 JavaScript 执行时,它将下拉动态页面元素。
我不久前写了一篇关于此的简短博客文章。 http://chase.ratchetsoftware.com/2008/12/rails-caching-dynamic-fragments/
此外,RailsEnvy 的 Greg Pollack 还制作了一个截屏视频,其中他重点介绍了缓存页面中的动态数据。 http://railslab.newrelic.com/2009/02/05/episode-5-advanced-page-caching
希望这可以帮助,
蔡斯·格雷
| 归档时间: |
|
| 查看次数: |
3179 次 |
| 最近记录: |