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 相关文章推荐
10分钟理解CSS3 Grid布局
Dec 20 HTML / CSS
CSS3实现缺角矩形,折角矩形以及缺角边框
Dec 20 HTML / CSS
HTML5 Canvas实现文本对齐的方法总结
Mar 24 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
Jul 11 HTML / CSS
HTML5 video播放器全屏(fullScreen)方法实例
Apr 24 HTML / CSS
html5表单及新增的改良元素详解
Jun 07 HTML / CSS
有关HTML5中背景音乐的自动播放功能
Oct 16 HTML / CSS
HTML5的postMessage的使用手册
Dec 19 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
Jan 24 HTML / CSS
html5利用canvas实现颜色容差抠图功能
Dec 23 HTML / CSS
基于html5 canvas做批改作业的小插件
May 20 HTML / CSS
HTML5简单实现添加背景音乐的几种方法
May 12 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
PHP遍历二维数组的代码
2011/04/22 PHP
php正则表达式使用的详细介绍
2013/04/27 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
PHP模拟asp.net的StringBuilder类实现方法
2015/08/08 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
2017/05/12 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
简单分析python的类变量、实例变量
2019/08/23 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
Ajax和javascript的区别
2013/07/20 面试题
幼儿园托班开学寄语
2014/01/18 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
离职证明标准格式
2014/09/15 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
老人与海读书笔记
2015/06/26 职场文书
培训学校2015年度工作总结
2015/07/20 职场文书
详解Python requests模块
2021/06/21 Python