html5 manifest缓存
来源:互联网 发布:mplayer 1.3 windows 编辑:程序博客网 时间:2024/05/16 04:50
html5 manifest缓存
html5给予了一个很好的webapp开发环境,有些时候我们会希望我们的应用像原生应用一般能被完全离线访问,而不同于我们所说的缓存优化,那我们就需要使用到html5 提供的mainfest标签,具体用法如下
index.html
<!DOCTYPE html><html lang="en" manifest="manifest.appcache"> <head> <meta charset="UTF-8"> <title>APP CACHE</title> <link rel="stylesheet" href="needCache.css"> <link rel="stylesheet" href="noCache.css"> </head> <body> <div class="box"></div> <script type="text/javascript"> window.applicationCache.addEventListener('updateready', function(){ console.log('updateready!'); window.applicationCache.swapCache(); }); </script></html>
/manifest.appcache
CACHE MANIFEST#version 1.0CACHE: needCache.cssNETWORK: *
像上面这样在html标签中添加manifest属性指向离线配置文件即可,其中的配置项的意思如下:
关于index.manifest文件,基本格式为三段: CACHE, NETWORK,与 FALLBACK,其中NETWORK和FALLBACK为可选项,而第一行CACHE MANIFEST为固定格式,必须写在前面。
CACHE:(必须)
标识出哪些文件需要缓存,可以是相对路径也可以是绝对路径。例如:aa.css,http://www.baidu.com/aa.js.
NETWORK:(可选)
这一部分是要绕过缓存直接读取的文件,可以使用通配符*,,也就是说除了上面的cache文件,剩下的文件每次都要重新拉取。例如*,login.php。
FALLBACK:(可选)
指定了一个后备页面,当资源无法访问时,浏览器会使用该页面。该段落的每条记录都列出两个 URI—第一个表示资源,第二个表示后备页面。两个 URI 都必须使用相对路径并且与清单文件同源。可以使用通配符。例如*.html /404.html(所有html页面都替换为404页面)。
在此需要注意的:
- 浏览器限制了每个站点的缓存大小,通常为5MB
- 修改被缓存的文件后,需要同时修改manifest文件才能使缓存起作用
- 想要整个应用都能离线访问一定要把NETWORK的选项置空,但并不一定要把所有资源都放在CACHE上(经过简单的chrome offline测试过,如有不同的现象望提出)
- 测试离线缓存需要使用服务器端访问,如果使用webstorm等直接访问,并不能真正测试manifest
- 建议使用FALLBACK,可以增加用户体验
- 在不使用上面的js代码的时候,需要刷新两次才能看到改变的效果,这个也会妨碍到缓存的更新,建议- 配合上面的代码一同使用
- 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问
- 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用老的缓存
参考资料
HTML5 离线缓存-manifest简介
0 0
- HTML5 缓存: cache manifest
- HTML5 缓存: cache manifest
- HTML5 缓存: cache manifest
- HTML5 缓存: cache manifest
- html5离线缓存--manifest
- HTML5离线缓存Manifest
- HTML5的manifest缓存
- html5 manifest缓存
- HTML5使用manifest缓存
- html5 manifest 离线缓存
- HTML5的manifest缓存
- html5 manifest 缓存的学习
- HTML5 离线缓存-manifest简介
- HTML5 离线缓存-manifest简介
- HTML5离线缓存Manifest是什么
- HTML5 离线缓存manifest浅析
- html5离线缓存机制--manifest
- HTML5之---Manifest 文件--离线缓存
- 临时表空间丢失处理
- 解密Java byte类型的一个小问题
- 瓦片地图服务参数与计算
- CSS超链接
- 微信自动发朋友圈 支持 文字,图片 小视频等等
- html5 manifest缓存
- 第01期:ubuntu下淘宝网Tengine服务器的搭建
- 机器学习-分类和逻辑回归
- Android 技术之Serializable和Parcelable方式
- 函数中实参到形参的传递
- Docker平台构成及执行流程
- Oracle的字段名不能和变量名一样,否则会无效
- 解读 SetupOfflineStoreEnvironment
- 优雅的方式了解每个程序