HTML 5 应用程序缓存_html/css_WEB-ITnose

php中文网
发布: 2016-06-21 09:10:11
原创
1344人浏览过

html 5 应用程序缓存的介绍

http://www.w3school.com.cn/html5/html_5_app_cache.asp


立即学习前端免费学习笔记(深入)”;

Hugging Face
Hugging Face

Hugging Face AI开源社区

Hugging Face 135
查看详情 Hugging Face

接下来通过实际案例介绍HTML5应用程序缓存的介绍。


立即学习前端免费学习笔记(深入)”;

一 应用服务器

应用服务器使用tomcat.

在tomcat的web.xml 添加如下配置,因为manifest文件返回时MIME-type必须为 text/cache-manifest

  <mime-mapping>    <extension>appcache</extension>    <mime-type>text/cache-manifest</mime-type>  </mime-mapping>
登录后复制

二 页面

manifest文件default.appcache

缓存staticPage.html,不缓存 * 即所有文件。如果页面不存在或无法连接到网路,跳转到errorPage.html

CACHE MANIFEST              staticPage.html      NETWORK: * FALLBACK:/ errorPage.html
登录后复制


立即学习前端免费学习笔记(深入)”;

index.html 引入default.appcache 缓存文件

<!DOCTYPE html><html manifest="default.appcache"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>	this is the index page!</body></html>
登录后复制

staticPage.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>	this is the static page! eee</body></html>
登录后复制

randomPage.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>This is the random page!</body></html>
登录后复制

errorPage.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>	<h1>Error !!!</h1></body></html>
登录后复制

所有以上html及缓存文件(default.appcache)都在同一目录下。

现在让我们看看测试结果如何.

访问 http://localhost:8080/webapp/index.html

结果如下

从控制台上的信息,可知staticPage.html,errorPage.html已被缓存.

停止服务器

访问 http://localhost:8080/webapp/staticPage.html 正常。缓存起效

访问 http://localhost:8080/webapp/randomPage.html 返回errorPage.html内容。yes,FALLBACK配置起效.

访问 http://localhost:8080/webapp/index.html 正常. no, 这不是我们想要的,因为我们并没有设置这个页面要缓存。 从w3cshcool介绍中可知 每个指定了 manifest 的页面在用户对其访问时都会被缓存


立即学习前端免费学习笔记(深入)”;

有如下一个方案针对以上问题。

添加cachePage.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html  manifest="default.appcache"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body></body></html>
登录后复制

修改index.html body内添加如下。

<iframe src="cachePage.html" style="display:none;"></iframe>
登录后复制

经测试,不可行


立即学习前端免费学习笔记(深入)”;

summary:

如果应用有A,B,C,D 页面。

A 页面中引入了一个manifest文件,该manifest文件,缓存B文件,C文件作为错误页面。

当请求A页面是,浏览器会缓存A,B,C页面,及manifest文件。

如果A、B、C页面有跟新,要刷新文件,就对服务器端的manifest文件做任意修改(或者删除服务器端的manifest文件, 如果这样当用户访问任意缓存页面时,浏览器会尝试同步manifest文件,发现文件不存在,然后删除所有客户端缓存)。


立即学习前端免费学习笔记(深入)”;

每次访问A,B,C(缓存页面),浏览器都会对manifest文件做一次同步。

访问非缓存的文件,则manifest文件不会同步。


也就是说,每次访问缓存文件,浏览器会去同步manifest文件,

如果manifest文件有跟新,则刷新缓存文件列表(更新缓存文件、删除缓存文件、添加缓存文件)。

然后再次访问缓存文件时就可以看到更新的内容了。


立即学习前端免费学习笔记(深入)”;

以上都在chrome版本41.0.2272.118做测试。 


立即学习前端免费学习笔记(深入)”;


立即学习前端免费学习笔记(深入)”;


立即学习前端免费学习笔记(深入)”;

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号