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弹性伸缩布局之box布局
Jul 12 HTML / CSS
CSS类名支持中文命名的示例
Apr 04 HTML / CSS
使用before和:after伪类制作css3圆形按钮
Apr 08 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
Nov 13 HTML / CSS
css3 实现元素弧线运动的示例代码
Apr 24 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
Jul 13 HTML / CSS
HTML5的Geolocation地理位置定位API使用教程
May 12 HTML / CSS
HTML5中使用postMessage实现Ajax跨域请求的方法
Apr 19 HTML / CSS
教你如何一步一步用Canvas写一个贪吃蛇
Oct 22 HTML / CSS
HTML5移动端手机网站开发流程
Apr 25 HTML / CSS
Html5导航栏吸顶方案原理与对比实现
Jun 10 HTML / CSS
css3 filter属性的使用简介
Mar 31 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制作图型计数器的例子
2006/10/09 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
JS 显示当前日期与时间的代码
2010/03/24 Javascript
jquery等待效果示例
2014/05/01 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
Node.js事件驱动
2015/06/18 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
简单实现js轮播图效果
2017/07/14 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
Python中GeoJson和bokeh-1的使用讲解
2019/01/03 Python
对Python w和w+权限的区别详解
2019/01/23 Python
Django实现网页分页功能
2019/10/31 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
社区中秋节活动方案
2014/01/29 职场文书
销售岗位职责范本
2014/06/12 职场文书
技术入股合作协议书
2014/10/07 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
Java实现给Word文件添加文字水印
2022/02/15 Java/Android
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库