大家肯定都听说过 html5 很多的新特性,html5 都出好多年了,说新不新了。今天我们来讨论一下 html5 cache manifest,应用程序缓存。 这个应用程序缓存的好处主要有三点,W3School 概括的挺好的 。
关于 manifest 文件的创建,基本格式可以在上面的链接里了解。我感兴趣的是如何在客户端处理静态资源缓存 (JS,CSS),减少 HTTP 请求开销,给我的应用提速。
可以用这个 gem rack-offline 来实现。
这个 gem 帮我们来管理 Manifest 文件的版本,触发使浏览器重新缓存文件的办法。我们只需要去考虑把什么东西放到客户端的浏览器缓存里去。
我们只需要去 config/routes.rb
里加入
offline = Rack::Offline.configure do``
cache ActionController::Base.helpers.asset_path("application.css")
cache ActionController::Base.helpers.asset_path("application.js")
network "/"
end
get "/app.manifest" => offline
这段 routing 会帮你新建一个 Manifest 文件:url 地址 http://”host”/app.manifest
。
文件内容如下
CACHE MANIFEST
# bfecba583c42df59c0573cfad91afe7f96c70ec8bef90c369af1d5f6581a47e8
/assets/application.css
/assets/application.js
NETWORK:
/
application.js
和 application.css
将被放置到浏览器缓存里,而所有其他在/
后的文件都要在每次的 http request 向服务器拽取。
如果你确定你的应用的用户群所使用的浏览器支持 html5, HTML5 cache manifest 未尝不是一个解决静态资源缓存的好办法,你们说呢?