iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >HTML5如何实现应用程序缓存
  • 761
分享到

HTML5如何实现应用程序缓存

2024-04-02 19:04:59 761人浏览 薄情痞子
摘要

本篇内容主要讲解“HTML5如何实现应用程序缓存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5如何实现应用程序缓存”吧!

本篇内容主要讲解“HTML5如何实现应用程序缓存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习html5如何实现应用程序缓存”吧!

  为什么要使用Application Cache技术?

  在HTML5之前,我们需要接入网络才能访问,这毫无疑问是网站多次请求服务器,造成速度变慢,对于PC用户,网络相对比较稳定,载入速度也不会差太多。但是移动端呢?移动端依赖无线信号、依赖信号塔、位置不固定、受附近建筑影响等。一系列导致网络的不稳定,我们不能改变用户,也不能放弃网络较慢的用户。

  还有,在混合app领域,经常使用内置WEBview加载html页面,如果网速太慢,依然会造成上述问题。

  离线存储技术

  实际开发中,主要是使用Application Cache和LocalStorage技术,它们来自HTML5技术。

  (1)Application Cache:通常用于静态资源(静态页面)的缓存。

  (2)LocalStorage:通常用于ajax请求缓存,存储非关键性AJAX数据。

  我用一段话来赘述下为什么要使用Application Cache技术:

  当页面有些元素它们是不变的,你可以使用Application Cache技术离线缓存掉,每次访问这些缓存掉的元素就不需要再请求服务器了,当有些东西经常变,那就让它们每次请求服务器吧!

  HTML5 Application Cache特性

  HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。

  应用程序缓存为应用带来三个优势:

  (1)离线浏览:用户可在不介入网络时访问使用

  (2)速度提升:已缓存资源加载得更快

  (3)减少对服务器的请求:浏览器将只从服务器下载更新过或更改过的资源

  支持情况:除了IE浏览器,都支持Application Cache

  开始使用Application Cache

  涉及角色:服务器和html文件

  服务器端需要做的事情

  管理维护manifest.appcache文件,检查manifest清单中是否有无法访问的文件,并及时更新,以免造成损失。

  manifest文件(W3C建议文件扩展名为。appcache)

  manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。

  manifest 文件可分为三个部分:

  CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存

  NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存

  FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

  我们梳理一下逐一进行介绍

  一、CACHE MANIFEST(它是必须的)

  manifest 文件列出了三个资源:一个 CSS 文件,一个 GIF 图像,以及一个 javascript 文件。当 manifest 文件加载后,浏览器会从网站的根目录下载这三个文件。然后,无论用户何时与因特网断开连接,这些资源依然是可用的。

  注意:文件位置根据文件在服务器的实际目录,确保路径正确。

  总结:CACHE MANIFEST列出的资源是需要在本地缓存的文件(要缓存的文件)

  二、NETWORK

  NETWORK 小节规定文件 “nav.html” 永远不会被缓存,且离线时不可用。

  也可以使用星号“ * ”来指示所有其他资源/文件都需要因特网连接。

  注意:千万不要把首页index放入NETWORK中禁止缓存,否则插件等无法使用。

  总结:NETWord列出的资源是需要每次请求的动态资源文件(不缓存的文件)

  三、FALLBACK

  FALLBACK 小节规定如果无法建立因特网连接,则用 “404.html” 替代 /index/ 目录中的所有文件。

  注意:第一个 URI 是资源,第二个是替补。

  总结:FALLBACK列出的资源是如果某个文件无法联网或接入失败,则使用后一个替补显示。(友好的替补页面)

  完整的manifest文件

  注意:#代表注释行,看似简单的注释行却有着很大的用处,为什么这么说呢,因为应用的缓存会在其 manifest 文件更改时被更新。如果您编辑了一幅图片,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存。更新注释行中的日期和版本号、时间戮或md5码等,是一种使浏览器重新缓存文件的办法。

  html需要做的事情

  只需要引入manifest.appcache文件

  Application Cache生命销毁规则

  (1)用户清空浏览器的缓存,此时Application Cache本地缓存将销毁。

  (2)manifest文件被修改时,因为应用的缓存会在其 manifest 文件更改时被更新。如果您编辑了一幅图片,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存,此时Application Cache本地缓存将销毁。

  (3)由程序来更新应用缓存

  深入manifest.appcache文件

  首先提醒的就是,千万不要把index首页禁止缓存,虽然放入NETWORK也不起作用,这是一种规范,也是一种规则,请遵守。

  Http相关的缓存头域以及https的缓存页面限制,将被manifest所无视,所以在用户代理更新页面之前,它是不会过期的,也就是说,即使是HTTPS,也可以脱机工作。

  各大浏览器对应用缓存的容量限制有所不同,几乎为5MB。

  当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问缓存中的资源。

  缓存包含manifest清单的页面,所以实际上,即使我们不显示的把包含manifest的页面,列在manifest缓存清单中,这个页面也会被缓存。

  每次网站更新,服务器端要进行manifest.appcache文件的检查和更新,避免造成损失。

  站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问。

  如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程都将失败,浏览器继续全部使用老的缓存。

  其实,不必明确的列出Application Cache链接到的页面,默认情况下,任何包含html元素manifest属性的页面都会缓存,这些自动缓存的页面称为主条目,而清单中列出的文件称为详细条目,如果某些文件需要在线访问,可以创建 “ 白名单 ”。像在NETWORK下的条目,这些文件通常称之为网络条目,每次联网,每次都要请求服务器。

  第一行CACHE MANIFEST是固定的格式,且必须要写在第一行,也必须要有,NETWORK和FALLBACK为可选项。

  FALLBACK中的资源必须和manifest文件同源。

  引用manifest的html必须与manifest文件同源,在同一个域下。

  当manifest文件发生改变时,资源请求本身也会触发更新

  注释不仅仅起到不执行的作用,上述已经详细解释了,可以是版本号,时间戳或者md5码等等。

  manifest文件中的cache部分不能使用通配符,必须手动指定,没有自动化工具

  在开发过程中,通过ajax与WCF进行数据交互时,常常头一次或头几次数据加载成功,以后均加载失败。

  因为启用的web离线缓存机制,所以每次ajax加载数据时是从本地缓存文件中读取的,用的是ajax的get模式,因为get模式缓存,所以不会重新向服务器请求数据,导致数据加载失败。

  改成ajax post方式后,数据 never cache,所以每次刷新网站,均会向service请求数据。

  报错: Application Cache Error event: Manifest fetch failed (404)

  解决方法:

  manifest 文件需要配置正确的 MIME-type,即 “text/cache-manifest”。

  manifest 的 contentType=text/cache-manifest,扩展名建议为 .appcache

  且必须在 web 服务器上进行配置,不同的服务器配置方法不一样。

  页面离线,ajax更新。

到此,相信大家对“HTML5如何实现应用程序缓存”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: HTML5如何实现应用程序缓存

本文链接: https://www.lsjlt.com/news/90986.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML5如何实现应用程序缓存
    本篇内容主要讲解“HTML5如何实现应用程序缓存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5如何实现应用程序缓存”吧!...
    99+
    2022-10-19
  • HTML5怎么实现应用程序缓存
    这篇文章主要介绍HTML5怎么实现应用程序缓存,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!为什么要使用Application Cache技术?在HTML5之前,我们需要接入网络才能访问,这毫无疑问是网站多次请求服务...
    99+
    2023-06-09
  • 怎么在Html5中实现应用程序缓存
    这篇文章给大家介绍怎么在Html5中实现应用程序缓存,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、作用离线浏览 - 根据文件规则把资源缓存在本地,脱机依然能够访问资源,联网会直接使用缓存在本地的文件。优化加载速度,...
    99+
    2023-06-09
  • HTML5应用程序如何缓存Application Cache
    HTML5应用程序如何缓存Application Cache,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是Applica...
    99+
    2022-10-19
  • 小程序数据缓存机制应用实现
    小程序数据缓存相关知识 数据缓存:缓存数据,从而在小程序退出后再次打开时,可以从缓存中读取上次保存的数据,常用的数据缓存API如下表所示: 注意:将数据存储在本地缓存中指定的 k...
    99+
    2022-11-12
  • HTML5中Web缓存和运用程序缓存的示例分析
    这篇文章主要为大家展示了“HTML5中Web缓存和运用程序缓存的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML5中Web缓存和运用程序缓存的示例...
    99+
    2022-10-19
  • 学习 PHP 缓存和 Spring:如何在应用程序中实现最佳实践?
    PHP和Spring是两种非常流行的开发语言和框架,它们各自都有着自己的优势和劣势。但是,无论你使用哪种语言或框架,缓存都是一个非常重要的话题。在本文中,我们将讨论如何在应用程序中实现最佳实践。 什么是缓存? 缓存是一种将一些计算结果或数...
    99+
    2023-09-06
    缓存 spring 学习笔记
  • 如何在Go应用程序中使用NPM缓存?
    当我们在编写使用 Node.js 的 Go 应用程序时,经常会用到 NPM 包管理器来安装、更新和管理依赖项。但是,在使用 NPM 过程中,我们可能会遇到一些问题,例如网络连接较慢、依赖项版本更新导致构建失败等等。为了解决这些问题,我们可以...
    99+
    2023-10-07
    npm 缓存 load
  • PHP对象响应编程算法:如何在Web应用程序中实现数据缓存?
    随着Web应用程序的不断发展,数据缓存已经成为了一个重要的话题。数据缓存可以帮助我们提高应用程序的性能,减少数据库的负载,提高用户的体验。在本文中,我们将介绍PHP对象响应编程算法,以及如何在Web应用程序中实现数据缓存。 PHP对象响应...
    99+
    2023-07-20
    对象 响应 编程算法
  • 如何利用缓存来优化HTML5 Canvas程序的性能
    这篇文章主要介绍“如何利用缓存来优化HTML5 Canvas程序的性能”,在日常操作中,相信很多人在如何利用缓存来优化HTML5 Canvas程序的性能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2022-10-19
  • Java应用程序如何正确处理路径缓存?
    在Java应用程序中,路径缓存是一个非常重要的概念。路径缓存可以提高应用程序的性能,并减少对文件系统的访问次数。但是,如果不正确处理路径缓存,就会导致应用程序出现问题,例如读取到错误的文件。 在本文中,我们将讨论Java应用程序如何正确处...
    99+
    2023-07-29
    path 缓存 apache
  • 如何利用缓存提高ASP应用程序的性能?
    ASP应用程序的性能对于网站的用户体验至关重要。如果您的网站响应速度很慢,那么访问者可能会失去耐心并转向其他网站。因此,优化ASP应用程序的性能至关重要。本文将介绍如何使用缓存来提高ASP应用程序的性能。 一、什么是缓存? 缓存是一种将数据...
    99+
    2023-07-27
    缓存 shell 异步编程
  • Java应用程序如何利用Shell脚本优化缓存?
    在Java应用程序中,缓存是非常重要的。缓存可以提高应用程序的性能,减少网络延迟和IO操作。然而,缓存也会占用大量的内存,导致应用程序变慢。为了解决这个问题,我们可以使用Shell脚本来优化缓存。本文将介绍如何使用Shell脚本来优化缓存...
    99+
    2023-09-06
    shell 缓存 git
  • php进程缓存如何实现
    这篇文章主要介绍“php进程缓存如何实现”,在日常操作中,相信很多人在php进程缓存如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php进程缓存如何实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-05
  • 如何用ThinkPHP缓存设置提升应用程序的性能
    这篇文章主要介绍“如何用ThinkPHP缓存设置提升应用程序的性能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用ThinkPHP缓存设置提升应用程序的性能”文章能帮助大家解决问题。一、缓存的优...
    99+
    2023-07-06
  • Go应该如何实现二级缓存
    目录一、需求二、实现连接Mysql并执行查询语句三、写一个错误处理函数四、设置二级缓存一、需求 实现二级缓存 程序运行起来后提示:“请输入命令:”,如果输入geta...
    99+
    2022-11-12
  • Java 缓存分布式教程:如何优化您的应用程序?
    随着互联网的不断发展,应用程序的高并发和大数据处理成为了每个开发者需要解决的问题。而缓存机制作为提高应用程序性能的一种重要方式,已经被广泛应用于各种应用场景中。在分布式应用程序中,缓存的作用更是不可忽视。本篇文章将介绍如何使用 Java ...
    99+
    2023-09-30
    缓存 分布式 教程
  • redis缓存对象如何实现序列化
    Redis缓存对象的序列化可以使用以下方法实现:1. 使用Redis自带的序列化机制:Redis提供了几种默认的序列化方式,包括ra...
    99+
    2023-09-06
    redis
  • Java应用程序缓存是否真的有用?
    在Java应用程序中,缓存是非常重要的一部分。它可以大大提高应用程序的性能和响应速度。但是,缓存是否真的有用?在什么情况下使用缓存会带来最大的好处?在本文中,我们将探讨这些问题,并提供一些演示代码。 首先,让我们来看看缓存是什么。缓存是一...
    99+
    2023-09-02
    缓存 日志 响应
  • ASP缓存和Django函数:如何使用缓存来改善您的Web应用程序的响应时间?
    Web应用程序的响应时间是用户体验的重要组成部分。对于许多Web应用程序来说,缓存是提高响应时间的一种有效方式。在本文中,我们将探讨ASP缓存和Django函数,以及如何使用它们来改善Web应用程序的响应时间。 ASP缓存 ASP缓存是一...
    99+
    2023-06-15
    缓存 django 函数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作