Rails HTML5 Cache manifest 在 Rails 中的应用

ningzhang422 · September 02, 2016 · 1785 hits

大家肯定都听说过 html5 很多的新特性,html5 都出好多年了,说新不新了。今天我们来讨论一下 html5 cache manifest,应用程序缓存。 这个应用程序缓存的好处主要有三点,W3School 概括的挺好的

  • 离线浏览 - 用户可在应用离线时使用它们
  • 速度 - 已缓存资源加载得更快
  • 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。

关于 manifest 文件的创建,基本格式可以在上面的链接里了解。我感兴趣的是如何在客户端处理静态资源缓存 (JS,CSS),减少 HTTP 请求开销,给我的应用提速。

如何在 rails 使用它

可以用这个 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.jsapplication.css 将被放置到浏览器缓存里,而所有其他在/后的文件都要在每次的 http request 向服务器拽取。

如果你确定你的应用的用户群所使用的浏览器支持 html5, HTML5 cache manifest 未尝不是一个解决静态资源缓存的好办法,你们说呢?

No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.