HTML5 之 离线缓存

HTML5 离线缓存DEMO示例 前端 阅读详情

HTML5的离线缓存又被称为应用缓存(application cache),为专门开发web离线应用而设计的,使web应用在离线的情况下仍能正常显示页面。虽然离线状态下不能进行一些和服务器的交互操作,但是缓存页面可加快下次访问的速度,减少下次访问时的服务请求,减轻服务器的压力。

Appcache是从浏览器的缓存中划分出一块空间,使用manifest描述文件列出想要缓存的资源,将资源缓存到该空间。

例如:下面是个最简单的例子,只要求缓存了一个js文件和一张背景图片。

CACHE MANIFEST
#comment

js/index.js
img/bg.png

要想将htm文件和描述文件关联起来可以在<html>标签使用manifest属性,来指定manifest文件的路径。

<html lang="en" manifest="demo.appcache">

manifest文件的结构:

  • CACHE MANIFEST (必选)                     标识出哪些文件需要缓存
  • NETWORK (可选)                                   标识要绕过缓存直接从服务器读取的文件(不会被缓存,离线时不可用)
  • FALLBACK(可选)                                    标识当资源无法访问时,浏览器使用的备用页面(例如404页面),类似于键值对

那么,浏览器是如何对缓存资源进行管理和加载的呢?

在线状态下,浏览器发现html标签里面如果有manifest属性,它首先会请求manifest文件,如果浏览器是第一次请求该页面,则会按照manifest文件里的清单缓存相应的资源。如果浏览器已经访问过该页面,并且缓存过相应的资源,那么浏览器就会先加载缓存过的离线资源,然后浏览器会请求新的manifest文件与旧的manifest文件作对比,如果发生改变,浏览器则会重新下载manifest文件中的资源。

下面是个简单的例子:


<!DOCTYPE html>
<html lang="en" manifest="demo.appcache">
<head>
    <meta charset="UTF-8">
    <title>HTML5应用缓存</title>
</head>
<body>
    <img src="img/01.jpg" alt="cat">
    <img src="img/02.jpg" alt="rabbit">
</body>
</html>
CACHE MANIFEST
#First ----------- 注释、描述
img/01.jpg

NETWORK:
*

FALLBACK:
*.html /404.html

将项目放进tomcat,打开服务器,通过localhost:8080访问,控制台输出如下:

页面正常显示两个图片。当关掉服务器后再次访问:

(从appcache中加载文档......)第二张图片无法正常显示。

再次打开服务器,刷新页面:

application cache有个对象的JavaScript API能让我们知道它的状态。

applicationCache对象,有个status属性,表示应用缓存当前的状态。

0:无与页面相关的缓存

1:闲置,缓存未更新

2:检查中,正在下载描述文件并检查更新

3:下载中,正在下载描述文件中列出的缓存清单

4:更新完成,可通过swapCache()来使用

5:废弃,应用缓存的描述文件已经不存在,该页面无法再访问应用缓存

相关事件:

  • checking:在浏览器为应用缓存查找更新时触发
  • error:在检查更新或下载资源期间发生错误时触发
  • noupdate:在检查描述文件发现文件无变化时触发
  • downloading:在开始下载应用缓存资源时触发
  • progress:在下载应用缓存资源时不断地触发
  • updateready:在新的应用缓存下载完毕后可通过swapCache( )使用时触发
  • cached:应用缓存完整可用时触发

相关事件在上述例子中已有所体现。

该图片引自  https://blog.youkuaiyun.com/dj0379/article/details/53350309#commentBox

Html5 离线应用缓存application Cache HTML5的离线web应用允许我们在脱机时与网站进行交互。这在提高网站的访问速度和制作一款web离线应用上(如HTML5游戏)有一定的用处。  一、什么是离线Web应程序?为什么要开发离线的Web应用程序?  离线web应用程序是指:当客户端本地与web应用程序的服务器没有建立连接时,也能正常在客户端本地使用该web应用程序进行有关操作。 Web应用程序已经变的越来越复杂,很多领 阅读详情

相关推荐

html5 离线缓存 Manifest 属性、.appcache文件

参考一:HTML5离线缓存Manifest https://www.cnblogs.com/xiangling/p/5626117.html 参考二:https://m.jb51.net/html5/438218.html(这篇文章的 manifest 配置文件例子少了一句 CACHE 代码,会导致缓存是表白) manifest 的作用: 简单来说manifest能让你的应...

weixin_41796631的博客 2231

详细介绍HTML5的离线储存(工作原理+使用场景+真实使用步骤)

HTML5提供了一种称为离线储存(offline storage)的功能,它允许Web应用程序在浏览器离线时继续访问相关资源,以提高Web应用程序的性能和用户体验。离线储存是通过在客户端(浏览器)中缓存Web应用程序的数据和文件来实现的。一旦缓存,Web应用程序将像普通应用程序一样在离线状态下继续运行。

weixin_55846296的博客 6689

HTML5前端浏览器离线缓存技术解析及应用

随着网络技术的飞速发展,离线缓存成为前端开发中不可或缺的技术之一,它极大地提升了用户的网络浏览体验。本章将带您走进HTML5前端浏览器离线缓存的世界,浅入深出地了解其基本概念、技术原理及应用价值。HTML5离线缓存是一种允许网页存储数据在本地浏览器的技术,以减少对服务器的依赖,从而即使在网络不可用的情况下,用户也能访问到之前浏览过的网站内容。这不仅优化了应用性能,也为移动设备用户带来了更为流畅的体验。HTML5 离线缓存是基于浏览器的机制,允许Web应用程序在没有网络连接时仍然可用。

weixin_42146230的博客 1058

HTML5-离线缓存(Application Cache)

HTML5-离线缓存(Application Cache) 1 什么是离线缓存? HTML5 引入离线缓存(Application Cache),这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 2 优势 离线浏览 - 用户可在应用离线时使用它们。 速度 - 已缓存资源加载得更快。 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。 3 应用场景 h5游戏及一些...

qq_34516556的博客 1993

html5离线缓存简单demo

该资源包含了一个使用html5使用离线缓存的简单demo,具体可以参考博客http://blog.youkuaiyun.com/mockingbirds/article/details/48412967

ELK - CentOS7 安装 elasticsearch 7.17.5

elk elasticsearch 安装

qq_19783793的博客 1461

HTML5有哪些缓存方式

API:1.localstorege.setItem(key,value),键值对的形式缓存2.localstorege.getItem(key),根据键名来缓存值3.localstorege.length ,获取总缓存数量。

subsistent的博客 3812

IBTrACS v04r01 数据提取实战:Pandas 筛选 JTWC/CMA/JMA 3机构最佳路径数据

本文详细介绍了如何使用 Pandas 高效提取和处理 IBTrACS v04r01 数据集中的最佳路径数据,特别针对 JTWC、CMA 和 JMA 三家权威机构的数据进行对比分析。通过构建可复用的数据提取函数,解决多机构数据质量差异问题,并提供高级分析与可视化应用示例,助力热带气旋研究。

clijovtbq401783153的博客 515

HTML5的离线存储

此外,随着Web技术的发展,新的缓存和离线存储技术(如Service Workers和Cache API)正在逐渐取代HTML5的离线缓存功能,因此开发者也可以考虑使用这些新技术来实现离线存储的需求。该文件包含一个或多个CACHE、NETWORK和FALLBACK部分,用于指定需要缓存的文件和资源、哪些文件需要在线访问、以及在无法访问某个资源时应使用的备用资源。在HTML文档的部分,通过添加一个指向缓存清单文件的标签(或使用manifest属性,具体取决于浏览器支持情况),将缓存清单与HTML文件相关联。

weixin_46515434的博客 1226

DNF单机版搭建全攻略:从零开始到局域网联机(含常见问题解决)

本文提供详细的DNF单机版搭建指南,从环境配置到局域网联机设置,涵盖服务端安装、数据库配置及常见问题解决方案。适合新手和有经验的玩家,帮助快速搭建专属游戏服务器,重温经典游戏体验。

weixin_30832143的博客 847

华为OD机试真题 新系统 - WIFI设备网络规划 (Java/Py/C/C++/Js/Go)

本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。

算法大师! 2017

html5的离线缓存_html5什么是离线缓存,有哪些优点

技术栈比较搭,基本用过的东西都是一模一样的。快手终面喜欢问智力题,校招也是终面问智力题,大家要准备一下一些经典智力题。如果排列组合、概率论这些基础忘了,建议回去补一下。

2401_84435838的博客 885

基于Simulink的压缩空气储能(Compressed Air Energy Storage, CAES)

压缩空气储能(CAES)是一种将电能转化为压缩空气存储在高压容器中,然后在需要时释放空气驱动涡轮机发电的技术。它具有大规模、长寿命和环境友好的特点,在电力系统中用于削峰填谷、频率调节和备用电源等应用。本项目将详细介绍如何在MATLAB/Simulink中搭建一个完整的基于压缩空气储能的系统,并提供具体的代码实现和设计步骤。如果你需要实现更复杂的控制逻辑,可以使用MATLAB Function模块。以下是一个简单的例子,展示了如何在该模块中实现一个条件逻辑:Matlab深色版本Kp = 1;

MHD0815的博客 1274

html5 离线资源缓存,html5的离线缓存使用方法

html5的离线缓存使用方法发布时间:2020-06-15 10:51:01来源:亿速云阅读:109作者:Leah这篇文章将为大家详细讲解有关html5的离线缓存使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。离线访问对基于网络的应用而言越来越重要。虽然所有浏览器都有缓存机制,但它们并不可靠,也不一定总能起到预期的作用。HTML5 使用 Applicati...

weixin_32659227的博客 509

什么是 SAP S/4HANA 的 VDM Layering Architecture 的 CDS Hierarchy View

当涉及SAP S/4HANA的CDS Hierarchy View时,我们正在谈论一种高级数据建模技术,用于构建层次结构化的数据视图,以支持树状和分层数据的处理和分析。CDS(Core Data Services)是SAP的一种数据建模和定义语言,而CDS Hierarchy View则是CDS的一个重要组成部分,用于处理层次数据,如组织结构、产品分类、地理区域等。首先,您可以使用CDS语言创建一个新的CDS Hierarchy View,定义产品分类的层次结构。您还可以定义其他与库存相关的属性。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 390

Windows窗口编程中的WM_PAINT、WM_ERASEBKGND、InvalidateRect、UpdateWindow、BeginPaint和EndPaint等函数详解

Windows窗口编程中的WM_PAINT、WM_ERASEBKGND、InvalidateRect、UpdateWindow、BeginPaint和EndPaint等函数详解

dvlinker的技术专栏 7165

JavaScript基础之缓存机制:HTML5离线缓存

浏览器的缓存机制,多种多样,离线缓存是其中之一,这也是为了更好的用户体验,性能优化的重要一步。我们来讲讲这个离线缓存。 什么是HTML5离线缓存? 离线缓存(Application Cache)就是web应用缓存方式的一种,可以使得用户在离线状态下,依然能够很完美的浏览网站。 HTML5离线缓存的优势? 离线浏览 - 用户可在应用离线时使用它们。 速度 - 已缓存资源加载得更快。 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。 HTML5离线缓存应用场景? h5游戏及一些页面

lee前端技术站 2050

信号的反射(振铃、台阶、回勾、尖峰毛刺)

反射是怎么形成的 假设信号传输过程中,经过两个阻抗不同的区域,如下图所示。区域1阻抗为Z1,区域2阻抗为Z2。 在分界面处,电压必须是连续的,否则,在分界面处会产生无穷大的电场,这在真实世界中是不可能的。 同样,分界面两侧的电流必须是连续的,否则分界面处会产生无穷大的磁场。 因此: 根据欧姆定律,必然有: 显然如果Z1≠Z2的情况下,上面式子不可能同时成立。如何理解这一困境? 应该从 ...

sinat_15677011的博客 1万+

HTML5之离线应用缓存

今天说说HTML5的新特性之一:离线应用缓存。 离线应用,就是在没有网络的情况下访问Web应用程序时,实际上是访问已下载的离线文件资源,并使得Web应用程序正常运行。 特性 开发者需要注意三个特性: 1. 离线资源缓存 在开发离线应用时,必须使用一种方案来说明哪些文件资源需要在离线状态下工作。当设备处于在线状态下,被指定缓存的资源文件便会缓存到本地。此后,如果用户在离线状态下再次访

qq_27892551的博客 543

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

HTML5关于缓存和离线存储知识总结

文章目录1 Cookie有哪些优缺点?2. JS操作获取和设置cookie3. cookies ,sessionStorage,localStorage的区别?4. 浏览器的本地存储(Web Storage)5. HTML5应用缓存(Application Cache)和浏览器缓存有何区别?6. HTML5的应用缓存(离线存储)的工作原理7. 浏览器是怎么对HTML5的离线存储资源进行管理和加载的8.如何使cookie隔离(即请求资源时不要让它带上cookie)? 1 Cookie有哪些优缺点? 优点:

鸭绒的博客 1092

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

HTML5离线视频,Html5离线缓存详细讲解

实例 - 完整的 Manifest 文件1,什么是应用程序缓存(Application Cache)HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。离线缓存:离线缓存可以将站点的一些文件缓存到本地,它是浏览器自己的一种机制,将需要的文件缓存下来,以便后期即使没有连接网络,被缓存的页面也可以展示。即使有网络,优先本地存储的资源2,应用程序缓存为应用带...

weixin_36058685的博客 1321

html5 缓存资源,HTML5离线缓存技术

起源大部分的网页,必须联网才能访问,这其实也是web的特色,但对于现在的移动互联网时代,设备终端位置不再固定,依赖无线信号,网络的可靠性变得降低,比如坐在火车上,过了一个隧道(15分钟),便无法访问网站,这对于web的用户体验是大打折扣的。html5便引入了cache manifest(离线缓存)文件来解决这个问题。那么什么是cache manifest呢?什么是Cache Manifest首先m...

weixin_39973009的博客 192

html开启页面离线缓存,HTML5 离线缓存

离线缓存applicationCache第一次加载后将数据缓存,如果没有清除缓存,下一次没有网络也能加载。使用1. 使用 manifest 属性,引入 .appcache 文件每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)manifest 文件的 建议 的文件扩展名是:.app...

weixin_29958955的博客 326

html5离线缓存 ios支持,iOS html5使用缓存并及时更新方案总结

最近一段时间研究了一下H5在iOS移动端表现时使用缓存并可及时更新方案,总结如下:一、使用Webview自带缓存机制当我们使用webview加载html资源时的,本质上就是一个向服务器索取资源的http请求过程,如果此时我们设置对于http请求时的缓存策略,那么就可以很好的把资源文件保存在内存空间和本地的沙盒文件中(iOS);当我们下次在加载的时候,如果加载的是同一个http请求地址时,此时 如果...

weixin_29230865的博客 1426

HTML5离线缓存技术

如上面提到的HTML5的离线存储是基于一个新建的.appcache文件的,通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。 就像cookie一样,html5的离线存储也需要服务器环境。 这里提供一个小工具——简易iis服务器,把它放在项目更目录下,双击运行即可模拟服务器环境。 链接:ht...

tiankongxiao的博客 743

html5离线缓存

html5离线缓存

冷月心的博客 814
上一篇: JS 之 创建对象
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值