前端基础_离线Web应用概述
admin
2024-05-02 15:38:20
0

离线Web应用概述

在Web应用中使用缓存的原因之一是为了支持离线应用。在全球互联的时代,离线应用仍有其实用价值。当无法上网的时候,你会做什么呢?你可能会说如今网络无处不在,而且非常稳定,不存在没有网络的情况。但事实果真如此吗?下面这些问题,你考虑到了吗?

 我们乘坐火车过隧道的时候信号好吗?

 我们使用移动网络设备的信号好吗?

 我们要去给客户做演示的时候,一定能有信号吗?

越来越多的应用移植到了Web上,我们倾向于认为用户拥有24小时不间断的网络连线。但事实上,网络连接中断时有发生,例如,在乘坐飞机的情况下,可预见的中断时间一次就可能达到好几个小时。

间断性的网络连接一直是网络计算系统致命的弱点。如果应用程序依赖于与远程主机的通信,而这些主机又无法连接时,用户就无法正常使用应用程序了。不过当网络连接正常时,Web应用程序可以保证及时更新,因为用户每次使用,应用程序都会从远程位置更新加载相关数据。

如果应用程序只需要偶尔进行网络通信,那么只要在本地存储了应用资源,无论是否连接网络它都可用。随着完全依赖于浏览器的设备的出现,Web应用程序在不稳定的网络状态下还能够持续工作就变得更加重要。在这方面,不需要持续连接网络的桌面应用程序历来被认为比Web应用程序更有优势。HTML5的缓存控制机制综合了Web应用和桌面应用两者的优势:基于Web技术构建的Web应用程序,可在浏览器中运行并在线更新,也可在脱机情况下使用。然而,因为目前的Web服务器不为脱机应用程序提供任何默认的缓存行为,所以要想使用这一新的离线应用功能,必须在应用中明确声明。HTML5的离线应用缓存使得在无网络连接状态下运行应用程序成为可能。这类应用程序用处很多,如在书写电子邮件草稿时就无须连接互联网。HTML5中引入了离线应用缓存,有了它Web应用程序就可以在没有网络连接的情况下运行。

应用程序开发人员可以指定HTML5应用程序中,具体哪些资源(HTML、CSS、JavaScript和图像)脱机时可用。离线应用的适用场景很多,例如:

 阅读和撰写电子邮件。

 编辑文档。

 编辑和显示演示文档。

 创建待办事宜列表。

使用离线存储,避免了加载应用程序时所需的常规网络请求。如果缓存清单文件是最新的,浏览器就知道自己无须检查其他资源是否最新。大部分应用程序可以非常迅速地从本地应用缓存中加载完成。此外,从缓存中加载资源(而不必用多个HTTP请求确定资源是否已经更新)可节省带宽,这对于移除Web应用是至关重要的。

缓存清单文件中标识的资源构成了应用缓存(Application Cache),它是浏览器持久性存储资源的地方,通常在硬盘上。有些浏览器向用户提供了查看应用程序缓存中数据的方法。例如,在最新版本的Firefox中,about:cache页面会显示应用程序缓存的详细信息,提供了查看缓存中的每个文件的办法。

https://www.bilibili.com/video/BV1kR4y167Cp/?p=2&spm_id_from=pageDriver&vd_source=a7816e3b2a3a67ac39dc87f6bf92421cicon-default.png?t=MBR7https://www.bilibili.com/video/BV1kR4y167Cp/?p=2&spm_id_from=pageDriver&vd_source=a7816e3b2a3a67ac39dc87f6bf92421c

相关内容

热门资讯

【看表情包学Linux】进程地...   🤣 爆笑教程 👉 《看表情包学Linux》👈 猛...
育碧GDC2018程序化大世界... 1.传统手动绘制森林的问题 采用手动绘制的方法的话,每次迭代地形都要手动再绘制森林。这...
编译原理陈火旺版第三章课后题答... 下面答案仅供参考! 1.编写一个对于 Pascal 源程序的预处理程序。该程序的作用是...
MacBookPro M2芯片... MacBookPro M2芯片下如何搭建React-Native环境目录软件下载环境配置 目录 写在...
Android studio ... 解决 Android studio 出现“The emulator process for AVD ...
pyflink学习笔记(六):... 在pyflink学习笔记(一)中简单介绍了table-sql的窗口函数,下面简单介绍下...
创建deployment 创建deployment服务编排-DeploymentDeployment工作负载均衡器介绍Depl...
gma 1.1.4 (2023... 新增   1、地图工具    a. 增加【GetWorldDEMDataSet】。提供了一套 GEO...
AI专业教您保姆级在暗影精灵8... 目录 一、Stable Diffusion介绍    二、Stable Diffusion环境搭建 ...
vue笔记 第一个Vue应用 Document{{content}}{{...
Unity自带类 --- Ti... 1.在Unity中,自己写的类(脚本)的名字不能与Unit...
托福口语21天——day5 发... 目录 一、连读纠音 二、语料输入+造句输出 三、真题 一、连读纠音 英语中的连读方式有好几种...
五、排序与分页 一、排序 1、语法 ORDER BY 字段 ASC | DESC ASC(ascen...
Linux系统中如何安装软件 文章目录一、rpm包安装方式步骤:二、deb包安装方式步骤:三、tar....
开荒手册4——Related ... 0 写在前面 最早读文献的时候,每每看到related work部分都会选择性的忽略&...
实验01:吃鸡蛋问题 1.实验目的: 通过实验理解算法的概念、算法的表示、算法的时间复杂度和空间复杂度分析&...
8个免费图片/照片压缩工具帮您... 继续查看一些最好的图像压缩工具,以提升用户体验和存储空间以及网站使用支持。 无数图像压...
Spring Cloud Al... 前言 本文小新为大家带来 Sentinel控制台规则配置 相关知识,具体内容包括流控...
多项目同时进行,如何做好进度管... 多项目同时进行,如何做好进度管理? 大多数时候,面对项目进...
ATTCK红队评估实战靶场(二... 前言 第二个靶机来喽,地址:vulunstack 环境配置 大喊一声我...