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实现轮播图效果实例
May 04 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
Sep 06 HTML / CSS
利用html5 file api读取本地文件示例(如图片、PDF等)
Mar 07 HTML / CSS
html5简单示例_动力节点Java学院整理
Jul 07 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
Oct 23 HTML / CSS
canvas 阴影和图形变换的示例代码
Jan 02 HTML / CSS
浅谈HTML5新增和废弃的标签
Apr 28 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 HTML / CSS
html5 横向滑动导航栏的方法示例
May 08 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
Aug 19 HTML / CSS
html+css实现文字折叠特效实例
Jun 02 HTML / CSS
CSS浮动引起的高度塌陷问题
Aug 05 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入库和出库
2013/06/25 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
angularJS的radio实现单项二选一的使用方法
2018/02/28 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
极简的Python入门指引
2015/04/01 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
英国家电直销:Appliances Direct
2016/09/22 全球购物
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
财务会计专业推荐信
2013/11/30 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
优秀教师个人总结
2015/02/11 职场文书
修改并编译golang源码的操作步骤
2021/07/25 Golang
你需要掌握的20个Python常用技巧
2022/02/28 Python