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轻松实现清新 Loading 效果的简单实例
Jun 06 HTML / CSS
CSS3伪类选择器:nth-child()
Apr 02 HTML / CSS
CSS3 倾斜的网页图片库实例教程
Nov 14 HTML / CSS
CSS3 实现侧边栏展开收起动画
Dec 22 HTML / CSS
基于css3 animate制作绚丽的动画效果
Nov 24 HTML / CSS
html5 学习简单的拾色器
Sep 03 HTML / CSS
用HTML5制作一个简单的弹力球游戏
May 12 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
Sep 25 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
Feb 29 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
Apr 24 HTML / CSS
canvas实现图片镜像翻转的2种方式
Jul 22 HTML / CSS
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
Apr 19 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
Sony CFR 320 修复改造
2020/03/14 无线电
最小化数据传输――在客户端存储数据
2006/10/09 PHP
php 魔术方法使用说明
2009/10/20 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
PHP批量生成图片缩略图的方法
2015/06/18 PHP
JavaScript的arguments对象应用示例
2014/09/15 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
实例讲解React 组件
2020/07/07 Javascript
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
python编写Logistic逻辑回归
2020/12/30 Python
python中的for循环
2018/09/28 Python
Python 一句话生成字母表的方法
2019/01/02 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
flask实现验证码并验证功能
2019/12/05 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
搬家公司的创业计划书
2014/01/01 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
患者身份识别制度
2015/08/06 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
民事调解协议书
2016/03/21 职场文书
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL