Html5应用程序缓存(Cache manifest)


Posted in HTML / CSS onJune 04, 2018

一、作用

离线浏览 - 根据文件规则把资源缓存在本地,脱机依然能够访问资源,联网会直接使用缓存在本地的文件。优化加载速度,节约服务器资源。

二、适用场景

正如 manifest 英译的名字:离线应用程序缓存,这项功能是设计给会有离线场景的应用来使用,例如:需要离线使用的手机APP/H5,亦或是PC端的纯静态页面。

三、问题

1.服务器资源更新后显示滞后需要多刷新一次页面

  1. 首次在载入页面时,浏览器会判断是否引入了 manifest,若检测到引入,则下载并按文件规则缓存资源。
  2. 再次载入页面时,便会根据 manifest 中规定的缓存文件使用本地缓存而不是请求服务器资源。
  3. 当 manifest 文件更新时,页面加载已经进行,但是缓存更新尚未完成,便会先使用旧 manifest 所缓存的文件,同时浏览器会将新的 manifest 文件里的缓存文件下载下来,若想看到最新的静态资源需要刷新下页面重新加载一次。

2.全量加载

当 manifest 文件更新时,所有的资源都要全部被下载一次,并且其中一个出现异常会导致整个 manifest 运行异常。

3.W3C标准及浏览器支持

作为 H5 的新属性,初衷是用来构造离线应用的,缓存网站资源的话原本浏览器的缓存机制(304)已经很好了,没必要再使用 manifest 做缓存;实际上因为使用反响并不好,W3C正在废弃 manifest。

四、使用方法

首先在标签 <html> 中指定 manifest 配置文件。

<html manifest="manifest.appcache">

配置文件 manifest.appcache。

CACHE MANIFEST
# 井号备注,这边可以放版本更新时间,修改备注算更新 manifest 文件
CACHE:
# 首次下载 CACHE 后列出来的文件后缓存到本地。
/favicon.ico
/main.css

NETWORK:
# NETWORK 下的文件不可被缓存,必须要与服务器连接。
login.php

FALLBACK:
# 一行放两个路径,第一个是访问资源,第二个是替补;当无法访问前一个资源时,用后一个资源代替之。
/cat/ /404.html

注意

manifest 会把当前页面缓存下来,所以若想更新当前页,只能先更新 manifest 文件。

五、总结

manifest 适用于需要离线运行的应用(定时器,计算器,阅读器等工具);而需要经常发布频繁更新的网站,这种离线缓存机制并不适合。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
网页布局中CSS样式无效的十个重要原因详解
Aug 10 HTML / CSS
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
Nov 05 HTML / CSS
css图标制作教程制作云图标
Jan 19 HTML / CSS
CSS3提交意见输入框样式代码
Oct 30 HTML / CSS
详解CSS3的box-shadow属性制作边框阴影效果的方法
May 10 HTML / CSS
如何使用html5与css3完成google涂鸦动画
Dec 16 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
Dec 11 HTML / CSS
详解android与HTML混合开发总结
Jun 06 HTML / CSS
Html5 canvas画图白板踩坑
Jun 01 HTML / CSS
AmazeUI中模态框的实现
Aug 19 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
Oct 28 HTML / CSS
关于HTML5+ API plusready的兼容问题
Nov 20 HTML / CSS
Html5之title吸顶功能
Jun 04 #HTML / CSS
浅谈Html5移动端ios/Android兼容性总结
Jun 01 #HTML / CSS
HTML5中的websocket实现直播功能
May 21 #HTML / CSS
深入浅析HTML5中的article和section的区别
May 15 #HTML / CSS
HTML5触摸事件实现移动端简易进度条的实现方法
May 04 #HTML / CSS
HTML5声音录制/播放功能的实现代码
May 03 #HTML / CSS
HTML5离线应用与客户端存储的实现
May 03 #HTML / CSS
You might like
AM/FM收音机的安装与调试
2021/03/02 无线电
ThinkPHP验证码使用简明教程
2014/03/05 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
Jquery 基础学习笔记
2009/05/29 Javascript
jQuery TextBox自动完成条
2009/07/22 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
2018/03/05 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
python中最小二乘法详细讲解
2021/02/19 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
巴西购物网站:Submarino
2020/01/19 全球购物
心理健康教育心得体会
2013/12/29 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
北京天坛导游词
2015/02/12 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis