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 相关文章推荐
CSS3 选择器 伪类选择器介绍
Jan 21 HTML / CSS
Web页面中八种创建多列等高(等高列布局)的实现技术
Dec 24 HTML / CSS
css3中背景尺寸background-size详解
Sep 02 HTML / CSS
基于css3的属性transition制作菜单导航效果
Sep 01 HTML / CSS
CSS3的calc()做响应模式布局的实现方法
Sep 06 HTML / CSS
如何用css3实现switch组件开关的方法
Feb 09 HTML / CSS
html5 web本地存储将取代我们的cookie
Dec 26 HTML / CSS
HTML5新增加的功能详解
Sep 05 HTML / CSS
HTML5离线应用与客户端存储的实现
May 03 HTML / CSS
简洁自适应404页面HTML好看的404源码
Dec 16 HTML / CSS
CSS3 制作精美的定价表
Apr 06 HTML / CSS
css filter和getUserMedia的联合使用
Feb 24 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
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
javascript知识点收藏
2007/02/22 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
python计算一个序列的平均值的方法
2015/07/11 Python
Python语法快速入门指南
2015/10/12 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
django-allauth入门学习和使用详解
2019/07/03 Python
Python解析json代码实例解析
2019/11/25 Python
Python中bisect的使用方法
2019/12/31 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
企业管理毕业生求职信范文
2014/03/07 职场文书
cf搞笑广告词
2014/03/14 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
投资公司董事长岗位职责
2015/04/16 职场文书
贫困生证明范文
2015/06/16 职场文书
怎样写好工作计划
2019/04/10 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技