appcache的一个特殊用法
Application Cache是HTML5里出现的用来实现离线应用的技术方案。在使用了appcache的页面会被缓存,同时浏览器检查manifest文件有没有变化,如果有变化,只有当用户下次进行访问的时候才会更新,很多情况下这是我们不希望出现的。
这里提出一个解决方案可以利用appcache保存那些不经常变动的静态资源,同时保证引用的页面不被缓存,如果静态资源发生更新,也可以实现立刻更新。
方案可通过下图来描述:

说明:
- 主页面index.html使用一个iframe引用offline.html。
- offline.html使用manifest进行缓存。
- offline.html中将资源以文本形式进行保存,例如作为html元素的内容。
- index.html通过js可以获取offline.html中保存的资源。
以上方案可以做到offline页面中的资源被缓存,通过index页面不受影响。当资源发生变化时,可直接修改iframe的src属性指向一个新的url。对于老的数据,可以继续保持引用并通过修改manifest文件方式使offline.html不再进行缓存。
建议用此方案来缓存那些不易变化的资源。
appcache的一个特殊用法的更多相关文章
- 转一个distinct用法,很有帮助
转一个distinct用法,很有帮助 (2011-12-01 15:18:11) 转载▼ 标签: 杂谈 分类: mysql复制 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提 ...
- Ajax_GET的一个基本用法
Ajax_GET的一个基本用法 首先先创建一个Server.js文件 //1.引入express// const { response } = require('express');const ex ...
- break 的一个“高级用法”(转)
转载:http://blog.csdn.net/lovelan1748/article/details/5321558 本小节不是很适于没有多少实际编程经历的初学者,所以初学者可以跳过,以后再回头阅读 ...
- C/C++ uchar的一个有趣用法
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51377490 图像处理中常常使用的一种 ...
- C#中dynamic的正确用法
C#中dynamic的正确用法 http://www.cnblogs.com/qiuweiguo/archive/2011/08/03/2125982.html dynamic是FrameWork4 ...
- 用友华表Cell一些用法小结(cs.net版本)
//从Color类型得到RGB类型,也可以用ColorTranslator.ToOle()方法 public int GetRGBFromColor(Color color) { byte r = c ...
- grep的用法
grep的用法首先创建我们练习grep命令时需要用到的demo文件demo_file. $ cat demo_file THIS LINE IS THE 1ST UPPER CASE LINE IN ...
- C#中dynamic的正确用法 以及 typeof(DynamicSample).GetMethod("Add");
dynamic是FrameWork4.0的新特性.dynamic的出现让C#具有了弱语言类型的特性.编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性.比如,即使你 ...
- (转)Linux 文件系统:procfs, sysfs, debugfs 用法简介
网址:http://www.tinylab.org/show-the-usage-of-procfs-sysfs-debugfs/ 1 前言 内核中有三个常用的伪文件系统:procfs,debugfs ...
随机推荐
- 解决IE下select标签innerHTML插入option的BUG(兼容
在ie下面使用innerHTML来插入option选项的话,ie会去掉前面的<option>,并拆分成多个节点,这样会造成select的出错 前言: 这是一个老bug了,现在提供一个完 ...
- 一篇文章让你入门Shell !
Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合. Shell可以直接使用在win/Unix/Linux上面 ...
- 自己根据js的兼容封装了一个小小的js库
var gys = function () { } //oParent父节点 //获取所有的子元素 gys.prototype.getElementChildren = function (oPare ...
- Nature | 光学CNN层替换传统CNN层,超省电
CNN 计算效率的研究一直备受关注,但由于功率和带宽的严格限制,CNN 仍难以应用在嵌入式系统如移动视觉.自动驾驶中.在斯坦福大学发表在 Nature 旗下 Scientific Reports 的这 ...
- css3选择符
常用的选择符 1.元素选择符 2.id选择符 3.class选择符 4.通配符 5.群组选择符 6.包含选择符 7.伪类选择符(伪类选择符CSS中已经定义好的选择器,不能随便取名) 8.伪对象选择符( ...
- for /f命令之—Delims和Tokens用法&总结
在For命令语踞饽参数F中,最难理解的就是Delims和Tokens两个选项,本文简单的做一个比较和总拮.“For /f”常用来解析文本,读取字符串.分工上,delims负责切分字符串,而tokens ...
- HAproxy使用
参考官网 安装HAproxy/ pull 官方镜像 本地安装:本地安装路径:/usr/local/haproxy/配置: 添加:/usr/local/haproxy/conf/haproxy.cfg添 ...
- LaTeX 公式字体大小设置
字体大小: 七号 5.25pt 1.845mm \tiny六号 7.875pt 2.768mm \scriptsize小五号 9pt 3.163mm \footnotesize五号 10.5p ...
- django 使用 可视化包-Pyechart
Echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生成 Echarts 图表的类库.实际上就是 Echarts 与 Python 的对接. 本次使 ...
- J2SE 8的Lambda --- 语法
语法例子 LambdaGrammarTest lambdaTest = new LambdaGrammarTest(); // 1. 能够推导出类型的,可以不写类型 String[] planets ...