HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览


Posted in HTML / CSS onDecember 13, 2012

打开一个网页,加载完后,如果突然断网了,那么你刷新后那页面就没了。
有没有想过,刷新后页面还是刚刚才页面,在新窗口中再打开一个页面,输入相同的网址,在断网的状态下打开还是原来那个页面。。HTML5的离线应用正提供了这样一个功能。
在页面中的数据加载时,你可以自己设定一些要缓存的图片、flash、css、js、html等文件,等下次不能联网的情况下,你可以用那些缓存的文件。这就是HTML5的离线应用。
其实它实现起来很简单。

需要服务器。这里用tomcat服务器来讲解。
首先要先把.manifest后缀的文件 的mine类型配置为text/cache-manifest。
一讲到tomcat配置,熟悉的朋友自然就会想到web.xml这个文件,没错,在文件中加入如下配置就行:

复制代码
代码如下:

<mime-mapping>
<extension>manifest</extension>
<mime-type>text/cache-manifest</mime-type>
</mime-mapping>

然后写一个xxx.manifest文件,xxx是你自己取的一个名字。这个文件的格式是这样的:
复制代码
代码如下:

CACHE MANIFEST
#version 1.5
CACHE:
MyTest.html
CSS/main.css
Javascript/bwH5LS.js
exp-calif-logo.gif

第一行是必须的,它标识这是manifest的配置文件。
#version 1.5
这句是注释,没实际的作用,我在这里只是想让浏览器更新缓存文件。因为当这个manifest文件与原来一样的时候,浏览器是不会去重新加载缓存文件的,所以我们可以通过这个注释,一方面修改版本号,另一方面让浏览器更新缓存。
CACHE:
这行指示出下面的文件是要缓存的。示例中,缓存了当前页面:MyTest.html,以及一些css和js文件 还有图片。
还有几个关键字示例中没提到,就是
NETWORK:
FALLBACK:
NETWORK 指不想缓存的页面;FALLBACK 是指请求的文件 没有找到或该文件的服务器没有响应时的替代方案,比如我们想请求某个嵌套页面,但这个页面的服务器连接不上了,那么我可以转向另外一个指定的页面。
这是第二步,第三步,只要在<html>标签中加上manifest的位置就行了:
<html manifest="NAME.manifest">
到这里,就可以实现简单的离线应用了。

那些缓存的文件放在哪呢?
在chrome上测试,发现它是按自己的机制来分块保存这些文件的,所以我没找不到完整的文件。保存的数据在:
C:\Users\jasonling\AppData\Local\Google\Chrome\User Data\Default 里面,具体怎么存,笔者还不了解。
火狐上的文件也是按它自己的机制来存的,不过笔者本人用sqlite打开后,找到了缓存文件的具体信息:
读者有兴趣可以自己去尝试一下,看会不会有新发现。

HTML / CSS 相关文章推荐
CSS3混合模式mix-blend-mode/background-blend-mode简介
Mar 15 HTML / CSS
css3中用animation的steps属性制作帧动画
Apr 25 HTML / CSS
基于CSS3特效之动画:animation的应用
May 09 HTML / CSS
网页切图的CSS和布局经验与要点
Apr 09 HTML / CSS
基于CSS3 animation动画属性实现轮播图效果
Sep 12 HTML / CSS
浅析CSS3 用text-overflow解决文字排版问题
Oct 28 HTML / CSS
CSS3 实现飘动的云朵动画
Dec 01 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
Jun 20 HTML / CSS
html5使用canvas绘制太阳系效果
Dec 15 HTML / CSS
详解window.open被浏览器拦截的解决方案
Jul 18 HTML / CSS
AmazeUi Tree(树形结构) 应用小结
Aug 17 HTML / CSS
详解Html5项目适配系统深色模式方案总结
Apr 14 HTML / CSS
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
Dec 13 #HTML / CSS
使用HTML5的链接预取功能(link prefetching)给网站提速
Dec 13 #HTML / CSS
HTML5 实现一个访问本地文件的实例
Dec 13 #HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
Dec 13 #HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
Dec 13 #HTML / CSS
HTML5 新旧语法标记对我们有什么好处
Dec 13 #HTML / CSS
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
Dec 13 #HTML / CSS
You might like
Session的工作方式
2006/10/09 PHP
Php图像处理类代码分享
2012/01/19 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
tornado 多进程模式解析
2018/01/15 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
python 经典数字滤波实例
2019/12/16 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
电气专业应届生求职信
2013/11/01 职场文书
美容院经理岗位职责
2014/04/03 职场文书
欢迎新生标语
2014/10/06 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
投标邀请书范本
2015/02/02 职场文书
三傻大闹宝莱坞观后感
2015/06/03 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis