• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5离线缓存Manifest是什么_html5教程技巧

HTML5离线缓存Manifest是什么_html5教程技巧

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,离线缓存,Manifest等相关知识,匿名希望在学习及工作中可以帮助到您
web app不比PC,有性能和流量方面的考虑,离线应用越来越重要,虽然浏览器有缓存机制,但是时常不靠谱,更何况普通情况下html文件是没法缓存的,断网之后一切over。

什么是manifest?

简单来说manifest能让你的应用在无网的情况下也能访问。

它有三大优势:

1、离线浏览,无网情况下也能正常访问;

2、更快的加载速度,缓存在本地访问速度自然更快;

3、减轻服务请求压力,文件缓存后不需要再次请求,只需要请求需要更新的文件。

如何使用?

  1. >
  2. <html manifest="demo.appcache">
  3. ...
  4. html>

你需要在你想要缓存的web app的每一页中都包含 manifest 属性。如果一个页面没有 manifest属性,它将不会被缓存(除非在manifest文件中显式指定了这 个页面)。这意味着只要用户访问的页面包含manifest属性,它都将会被加入application cache中。这样,就不用在manifest文件中指定需要缓存哪些页面了。

Manifest属性可以指定一个绝对URL或是一个相对路径,但是,一个绝对URL需要和web app是同源的。一个manifest文件可以是任何扩展文件类型,但必须有正确的mime-type,比如在Apache中添加

“AddType text/cache-manifest .appcache”。

Manifest文件

manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。

manifest 文件可分为三个部分:

CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

一个完整的manifest文件:

  1. CACHE MANIFEST
  2. # 2012-02-21 v1.0.0
  3. /theme.css
  4. /logo.gif
  5. /main.js
  6. NETWORK:
  7. login.asp
  8. FALLBACK:
  9. /html5/ /404.html

CACHE MANIFEST是必须的,#后面是注释,下面是需要cache的文件,需要相对路径,NETWORK是需要每次请求加载的文件。
可以使用星号来指示所有其他资源/文件都需要因特网连接:
NETWORK:
*
FALLBACK是如果无法建立因特网连接,则用 "404.html" 替代 /html5/ 目录中的所有文件。

更新机制
有三种方式更新manifest缓存:
1、用户清空浏览器缓存;
2、manifest文件被修改,哪怕是注释(所以可以通过修改注释来更新文件)
3、由程序来更新

缓存状态
在程序可以通过window.applicationCache属性来查看缓存状态。

  1. var appCache = window.applicationCache;
  2. switch (appCache.status) {
  3. case appCache.UNCACHED: // UNCACHED == 0
  4. return ‘UNCACHED’;
  5. break;
  6. case appCache.IDLE: // IDLE == 1
  7. return ‘IDLE’;
  8. break;
  9. case appCache.CHECKING: // CHECKING == 2
  10. return ‘CHECKING’;
  11. break;
  12. case appCache.DOWNLOADING: // DOWNLOADING == 3
  13. return ‘DOWNLOADING’;
  14. break;
  15. case appCache.UPDATEREADY: // UPDATEREADY == 4
  16. return ‘UPDATEREADY’;
  17. break;
  18. case appCache.OBSOLETE: // OBSOLETE == 5
  19. return ‘OBSOLETE’;
  20. break;
  21. default:
  22. return ‘UKNOWN CACHE STATUS’;
  23. break;
  24. };

为了通过编程更新cache,首先调用 applicationCache.update()。这将会试图更新用户的 cache(要求manifest文件已经改变)。最后,当 applicationCache.status 处于 UPDATEREADY 状态时, 调用applicationCache.swapCache(),旧的cache就会被置换成新的。

  1. var appCache = window.applicationCache;
  2. appCache.update(); // Attempt to update the user’s cache.
  3. …
  4. if (appCache.status == window.applicationCache.UPDATEREADY) {
  5. appCache.swapCache(); // The fetch was succe

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2017-08-06HTML5全屏(Fullscreen)API详细介绍
  • 2018-12-03html5各种页面切换效果和模态对话框用法总结_html5教程技巧
  • 2018-12-03HTML5<progress>标签是什么意思?HTML5<progress>标签的基本用法详解
  • 2018-12-03什么是标准模式?总结标准模式的实例用法
  • 2018-12-03详解HTML5通讯录获取指定多个人的信息
  • 2018-12-03总结关于内联SVG注意点汇总
  • 2018-12-03HTML5 canvas 9绘制图片实例详解
  • 2018-12-03这个问题已有了答案?
  • 2018-12-03小强的HTML5移动开发之路(52)——jquerymobile中的触控交互
  • 2018-12-03HTML5实战教程———开发一个简单漂亮的登录页面

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍_html5教程技巧
    • html5返回音频/视频的当前网络状态(activity)的属性networkState
    • Web Component 与微软十五年前提出的 HTML Component 有什么区别和联系?
    • html5返回一个MediaError对象的属性error
    • HTML中使用SVG与SVG预定义形状元素介绍
    • 使用html5可以干什么?Html5的优势和劣势(总结)
    • 利用HTML5 Canvas制作键盘及鼠标动画的实例分享_html5教程技巧
    • 编写html5时调试发现脚本php等网页js、css等失效
    • 怎样以简单易懂方式向普通人解释 HTML5 对 HTML 技术的改进?
    • font-weight:blod的跳动问题怎样用CSS解决

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有