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学习之2D转换功能详解
Dec 23 HTML / CSS
CSS3解决移动页面上点击链接触发色块的问题
Jun 03 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
Apr 26 HTML / CSS
CSS3 input框的实现代码类似Google登录的动画效果
Aug 04 HTML / CSS
用HTML5.0制作网页的教程
May 30 HTML / CSS
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
Jan 30 HTML / CSS
HTML5 canvas画矩形时出现边框样式不一致的解决方法
Oct 14 HTML / CSS
基于html5实现的图片墙效果
Oct 16 HTML / CSS
通过HTML5规范搞定i、em、b、strong元素的区别
Mar 04 HTML / CSS
AmazeUI 按钮交互的实现示例
Aug 24 HTML / CSS
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
Apr 07 HTML / CSS
使用CSS自定义属性实现骨架屏效果
Jun 21 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/12 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
bootstrapTable+ajax加载数据 refresh更新数据
2018/08/31 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
Python安装第三方库的3种方法
2015/06/21 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
Python的collections模块真的很好用
2021/03/01 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
物业管理求职自荐信
2013/09/25 职场文书
国际商务系学生个人的自我评价
2013/11/26 职场文书
技术合作协议书范本
2014/04/18 职场文书
说明书怎么写
2014/05/06 职场文书
工会换届选举方案
2014/05/21 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
创业计划书之网吧
2019/10/10 职场文书
Django rest framework如何自定义用户表
2021/06/09 Python