在本身作的开源项目( https://github.com/etoah/Lucien )php
用到了HTML5 的Application Cache,现总结以下:css
虽然说兼容性并不乐观,但IE8,9这种老东西,兼容开发量又大,界面颜值又不高,BSIE.html
建立一个和html同名的manifest文件,好比页面为index.html,那么能够建一个index.manifest的文件,而后给index.html的html标签添加以下属性便可:前端
<html lang="en" manifest="index.manifest">
CACHE:(必须)html5
标识出哪些文件须要缓存,能够是相对路径也能够是绝对路径。java
a.csshttp://yanhaijing.com/a.css
NETWORK:(可选)git
这一部分是要绕过缓存直接读取的文件,可使用通配符*。github
下面的代码 “login.asp” 永远不会被缓存,且离线时是不可用的:json
NETWORK:login.asp
可使用星号来指示全部其余资源/文件都须要因特网链接:后端
NETWORK:* ###FALLBACK:(可选)
FALLBACK
指定了一个后备页面,当资源没法访问时,浏览器会使用该页面。该段落的每条记录都列出两个 URI—第一个表示资源,第二个表示后备页面。两个 URI 都必须使用相对路径而且与清单文件同源。可使用通配符。
下面的例子中,若是没法创建因特网链接,则用 “404.html” 替代 /html5/ 目录中的全部文件。
FALLBACK:/html5/ /404.html
下面的例子中,则用 “404.html” 替代全部文件。
FALLBACK:*.html /404.html
示例
CACHE MANIFEST CACHE: #v0.0.0 css/editor.css css/icons.woff #js js/require.js js/main.js #html index.html demo.html NETWORK: * FALLBACK: *
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) { window.applicationCache.update(); }
对与咱们企业内部应用来讲,可能这些特性并无什么用处,可是只要结合AngularJS等MV*的框架,后端直接返回json 数据,
前端直接用html静态文件,每次用户访问时,载入的时只是载入本地Application Cache,这样的话有如下优点:
[1] HTML5离线存储之Application Cache
[2] HTML5 缓存: cache manifest