h5离线缓存

html5离线缓存

    • 1. 简介
      • 1.1 什么是离线缓存
      • 1.2 优点
      • 1.3 针对对象
    • 2. 实现方式
      • 2.1 使用
    • 3. window.applicationCache对象相关api
      • 3.1 属性
      • 3.2 事件
      • 3.3 方法

1. 简介

1.1 什么是离线缓存

 HTML5中引入了应用程序缓存,意味着Web应用可以进行数据缓存,并可以在没有因特网连接的情况下进行访问。带来较好的用户体验。

1.2 优点

1. 离线浏览
2. 提升页面载入速度
3. 减轻服务器负载

1.3 针对对象

1. html中的缓存机制浏览器自带缓存
2. 针对目标图片、JS文件、CSS缓存、静态页面

2. 实现方式

2.1 使用

 ① 服务器端需要维护一个manifest清单(哪些内容缓存、哪些内容不缓存、缓存失败如何处理)(CACHE MANIFEST->CACHE:、NETWORK:、FALLBACK:)② 浏览器页面中需要简单设置(当前页面使用哪个缓存清单文件)
  1. 在服务器中配置缓存清单文件
    后缀(通常是 .manifest .appcache .cache)
CACHE MANIFEST
# 声明是缓存清单文件 version 1.0.0.2.9# 要缓存的js/css文件
CACHE:
js/jquery-3.4.1.js
js/main.js# 要使用网络才能访问的内容 不需要缓存
NETWORK:
shop.jsp# 缓存失败怎么处理
FALLBACK:
css/style.css / css/styleError.css
  1. 在服务器配置文件中配置映射清单文件类型
 以tomcat为例:在WEB-INF/web.xml中<mime-mapping><extension>manifest</extension><mime-type>text/cache-manifest</mime-type></mime-mapping>
  1. 在html页面头部声明清单文件
 <html manifest="index.manifest">

3. window.applicationCache对象相关api

3.1 属性

  • applicationCache.status 状态
stylestatus
UNCACHED=0未缓存
IDLE=1空闲
CHECKING=2检查中
DOWNLOADING=3下载中
UPDATEREADY=4更新准备就绪
OBSOLETE=5过期

3.2 事件

项目Value
checking当检查更新或第一次下载manifest清单时,往往是第一个被触发的事件(简单版理解,当检查缓存时,会触发)
noupdate检查到manifest清单文件不需要更新时触发(简单版理解,检查如果不需要更新缓存,那么后续事件全部不会执行)
downloading更新或第一次下载manifest清单时触发
progress下载清单文件过程中周期性触发 loaded/total
updateready更新下载清单文件完成并就绪后触发
cached清单文件下载完毕并成功缓存后触发
obsolete当访问清单文件返回404或401时触发
  error 在以下情况发生时触发a 已触发obsolete事件b 清单文件没有改变,但清单是文件下载失败c 获取清单文件时发生错误d 正在更新本地缓存时,清单文件再次被更改
// jQuery监听事件appCache.onprogress = function(e){// do sth...};appCache.addEventListener("checking",function(e){});$(appCache).on("checking",function(e){});

3.3 方法

  applicationCache.update(); 请求更新缓存applicationCache.swapCache(); 更新本地缓存数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3389爆破DUBrute_2.1

3389专业爆破 DUBrute_2.1.zip http://pan.baidu.com/s/1pJE0t5L转载于:https://www.cnblogs.com/lieyan/p/3859696.html

信息抽取--短语提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 短语提取 在信息抽取领域&#xff0c;另一项重要的任务就是提取中文短语&#xff0c;也即固定多字词表达串的识别。短语提取经常用于搜索引擎的自动推荐&#xff0c;文…

ACM1598并查集方法

find the most comfortable road Problem DescriptionXX星有许多城市&#xff0c;城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构&#xff09;进行交流&#xff0c;每条SARS都对行驶在上面的Flycar限制了固定的Speed&#xff0c;同时XX星人对…

h5 server send event(sse)

1. sse概述 概念&#xff1a; H5支持使用JS脚本不间断的访问服务器(推送)轮询: 页面使用js的定时器&#xff0c;定时发送请求查询最新数据 使用js将最新数据加载至页面 每发送一次数据&#xff0c;需要建立新的连接 时间间隔由客户端决定 优点&#xff1a;不需要刷新页面、实…

信息抽取--关键句提取

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 关键句提取 在一些场合&#xff0c;关键词或关键短语依然显得碎片化&#xff0c;不足以表达完整的主题。这时通常提取中心句子作为文章的简短摘要。 2 问题 关键句提…

Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null

最近发现系统中出现了很多 IOException: Connection reset by peer 与 ClosedChannelException: null 深入看了看代码, 做了些测试, 发现 Connection reset 会在客户端不知道 channel 被关闭的情况下, 触发了 eventloop 的 unsafe.read() 操作抛出 而 ClosedChannelException 一…

注解方式实现aop

aop注解实现spring配置文件目标接口&#xff0c;目标实现类&#xff0c;切面类 注解写法使用spring-test测试spring配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmln…

文本聚类

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 聚类(cluster analysis )指的是将给定对象的集合划分为不同子集的过程&#xff0c;目标是使得每个子集内部的元素尽量相似&#xff0c;不同子集间的元素尽量不相似。 …

sublime text3下BracketHighlighter的配置方法

st3的配置方法和st2是有区别的&#xff0c;所以网上搜索到的方法大多不能用&#xff0c;我google之后总结了一下。 一、 1、在st3中按preferences-->package settings-->Bracket highlighter-->Bracket settings-Default打开配置文件。 2、将配置文件信息全选复制一份…

利用spring注解创建bean

spring注解spring 原始注解1.1 Component注解1.2 Controller,Service,Repository同上1.3 注解方式依赖注入spring 新注解1. 用来解析配置类&#xff0c;利用配置类替代xml注解代替了xml的繁琐配置 spring 原始注解 1.1 Component注解 <!--spring 使用注解创建对象 compone…

文本分类--普通分类

1 基本概念 文本分类 文本分类&#xff08;text classification&#xff09;&#xff0c;指的是将一个文档归类到一个或多个类别的自然语言处理任务。文本分类的应用场景非常广泛&#xff0c;包括垃圾邮件过滤、自动打标等任何需要自动归档文本的场合。 文本分类在机器学习中属…

hdoj 2041 超级阶梯

代码&#xff1a; #include <stdio.h>int main(){int n;int i;int m;int count;int dp[50];while(scanf("%d",&n)!EOF){dp[1]1;dp[2]1;dp[3]2;while(n--){count0;scanf("%d",&m);for(i4; i<m; i){dp[i]dp[i-1]dp[i-2];}printf("%d\n…

文本分类--情感分析

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 基本概念 情感分析 对于情感分析而言&#xff0c;只需要准备标注了正负情感的大量文档&#xff0c;就能将其视作普通的文本分类任务来解决。此外&#xff0c;一些带有评分的电影…

websocket使用

websocket1. 概述2. websocket的用法3. js代码实现4. 服务器端代码实现maven下载地址&#xff1a;https://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket 1. 概述 什么是websocket - WebSocket是一种网络传输协议&#xff0c; 可在单个TCP连接上进行全双工…

深度学习与自然语言处理

&#xff08;纯属为了记录自己学习的点滴过程&#xff0c;引用资料都附在参考列表&#xff09; 1 传统方法的局限 1.1 传统方法的套路 传统方法的处理流程简单来说就是&#xff1a;特征提取传统机器学习模型训练&#xff1b; 特征提取&#xff1a; 使用了特征模板、TF-IDF、…

linux 烧写(1)

第一部分: 一、BootLoader的概念 BootLoader是系统加电启运行的第一段软件代码&#xff0e;回忆一下PC的体系结构我们可以知道&#xff0c;PC机中的引导加载程序由BIOS&#xff08;其本质就是一段固件程序&#xff09;和位于硬盘MBR中的引导程序一起组成。BIOS在完成硬件检测和…