Application Cache是HTML5里出现的用来实现离线应用的技术方案。在使用了appcache的页面会被缓存,同时浏览器检查manifest文件有没有变化,如果有变化,只有当用户下次进行访问的时候才会更新,很多情况下这是我们不希望出现的。

这里提出一个解决方案可以利用appcache保存那些不经常变动的静态资源,同时保证引用的页面不被缓存,如果静态资源发生更新,也可以实现立刻更新。

方案可通过下图来描述:

说明:

  1. 主页面index.html使用一个iframe引用offline.html。
  2. offline.html使用manifest进行缓存。
  3. offline.html中将资源以文本形式进行保存,例如作为html元素的内容。
  4. index.html通过js可以获取offline.html中保存的资源。

以上方案可以做到offline页面中的资源被缓存,通过index页面不受影响。当资源发生变化时,可直接修改iframe的src属性指向一个新的url。对于老的数据,可以继续保持引用并通过修改manifest文件方式使offline.html不再进行缓存。

建议用此方案来缓存那些不易变化的资源。

appcache的一个特殊用法的更多相关文章

  1. 转一个distinct用法,很有帮助

    转一个distinct用法,很有帮助 (2011-12-01 15:18:11) 转载▼ 标签: 杂谈 分类: mysql复制 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提 ...

  2. Ajax_GET的一个基本用法

    Ajax_GET的一个基本用法 首先先创建一个Server.js文件 ​//1.引入express// const { response } = require('express');const ex ...

  3. break 的一个“高级用法”(转)

    转载:http://blog.csdn.net/lovelan1748/article/details/5321558 本小节不是很适于没有多少实际编程经历的初学者,所以初学者可以跳过,以后再回头阅读 ...

  4. C/C++ uchar的一个有趣用法

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51377490 图像处理中常常使用的一种 ...

  5. C#中dynamic的正确用法

    C#中dynamic的正确用法  http://www.cnblogs.com/qiuweiguo/archive/2011/08/03/2125982.html dynamic是FrameWork4 ...

  6. 用友华表Cell一些用法小结(cs.net版本)

    //从Color类型得到RGB类型,也可以用ColorTranslator.ToOle()方法 public int GetRGBFromColor(Color color) { byte r = c ...

  7. grep的用法

    grep的用法首先创建我们练习grep命令时需要用到的demo文件demo_file. $ cat demo_file THIS LINE IS THE 1ST UPPER CASE LINE IN ...

  8. C#中dynamic的正确用法 以及 typeof(DynamicSample).GetMethod("Add");

    dynamic是FrameWork4.0的新特性.dynamic的出现让C#具有了弱语言类型的特性.编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性.比如,即使你 ...

  9. (转)Linux 文件系统:procfs, sysfs, debugfs 用法简介

    网址:http://www.tinylab.org/show-the-usage-of-procfs-sysfs-debugfs/ 1 前言 内核中有三个常用的伪文件系统:procfs,debugfs ...

随机推荐

  1. javascript节点操作移出节点removeChild()

    removeChild(a)是用来删除文档中的已有元素 参数a:要移出的节点 <div id="guoDiv"> <span>1</span> ...

  2. 使用eclipse在linux下开发C/C++

    一直在Linux下开发,苦于没有IDE,一般都是自己编写Makefile,然后在windows下用文本编辑器ftp打开文件编辑,然后在linux下完成编译.调试代码也只能是命令行用gdb进行调试,相当 ...

  3. FIO read测试结果偏离

    工作中发现一个fio问题,测试组测试出来的数据read速度一个是17.0G/s,一个是13.2G/s.要知道我后台只有24块7.2k RPM的机械硬盘啊!怎么也不可能有这样的速度. 回家之后我模拟了实 ...

  4. linux 系统管理 实战技巧

    一.这篇文章讲了什么? 这篇文章很有参考性哈.本来是想等一段时间有更多条技巧后在发布的,不过,突然发现,我是去年的今天在博客园落户了,祝我的博客一周岁快乐,希望以后多分享一些文章啦.所以就把草稿箱的其 ...

  5. setTimeout 方法带参数传递

    setTimeout(callback, after, arg1, arg2); 其中,callback即function(){},after为时间参数,指多久后执行callback,单位为毫秒,30 ...

  6. 显式锁(三)读写锁ReadWriteLock

    前言:   上一篇文章,已经很详细地介绍了 显式锁Lock 以及 其常用的实现方式- - ReetrantLock(重入锁),本文将介绍另一种显式锁 - - 读写锁ReadWriteLock.    ...

  7. 阻止form提交数据,通过ajax等上传数据

    btn.click(function (event) { event.preventDefault(); // 组织发送 $.ajax({ ...}) })

  8. catpcha

    生成随机验证码: # -*- coding: utf-8 -*- # @Author: huangyong # @Date: 2016-10-29 22:18:38 # @Last Modified ...

  9. uva-10474-枚举-水题

    题意:看代码 #include<stdio.h> #include<iostream> #include<sstream> #include<queue> ...

  10. leetcode367

    public class Solution { public bool IsPerfectSquare(int num) { , high = num; while (low <= high) ...