美文网首页
h5 离线缓存

h5 离线缓存

作者: webjiacheng | 来源:发表于2018-02-01 15:37 被阅读0次

由于在生活中,经常会遇到有些时候手机没有信号没有网络什么的,就访问不了应用了,但是我们应用有很多东西又是不怎么变化的,所以这两天看了下有关离线缓存方面的文章,自己简单实现了下:
网上都是tomcat的方式的,我使用的是nodejs的方式。
1.创建index.html

<!DOCTYPE html>
<html lang="en" manifest="/cache/demo.appcache"> 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>测试缓存</title>
</head>
<body>
    <h2>文件缓存测试12345</h2>
    <a href="./a.html">去新页面</a>
    <img src="/public/1.png" alt="">
    <img src="/public/2.png" alt="">
</body>
<script>
    applicationCache.onupdateready = function() {  
        if (confirm("本地缓存已被更新,需要刷新页面来获取应用程序最新版本")) {  
            //手动更新本地缓存,只能在onupdateready事件触发时调用  
            applicationCache.swapCache();  
            location.reload();  
        }  
    }  
</script>
</html>

其中看到第一行<html lang="en" manifest="/cache/demo.appcache">,manifest的属性值是缓存的菜单文件,看看里面写的是什么:

CACHE MANIFEST
# v1.0.7

CACHE:
/public/index.html
/public/a.html
/public/1.png

NETWORK: 
/public/2.png

CACHE MANIFEST是必选的,CACHE是需要缓存的资源(可选),NETWORK是需要网络加载的资源(可选),因为浏览器解析到index.html的第一行时,会去读这份缓存清单,先看该清单与没有改变,没有改变则使用缓存中的文件,否则更新缓存刷新页面,流程是这样的:

缓存流程
然后还有最重要的一步是:demo.appcache的返回首部字段mime必须是text/cache-manifest,如果你用PC端访问的的话,记得不要勾选disable cache选项
不要勾选disable cache选项
你会发现,在你的缓存中会有这些东西:
image.png
你此时把服务给关掉或者网络断掉就会发现还依然可以访问网页,但是b.png无法访问,因为他没有被缓存下来。
下面是浏览器对h5离线缓存的支持情况
h5离线缓存支持情况

相关文章

  • 通过vite-plugin-pwa配置了解pwa

    前提:多页面vite项目给native提供h5页面,设置离线缓存优化体验 实现service worker离线缓存...

  • Hybird-App离线缓存系统

    目录 背景接口格式离线资源包格式离线资源下发离线资源缓存 背景 由于线上乐刻客户端 App 第一次打开平台 H5 ...

  • 离线应用与客户端缓存(《JavaScript高级程序设计》23章

    1、离线检测 navigator.onLine H5定义了两个事件 online 和offline 2、应用缓存 ...

  • h5 离线缓存

    由于在生活中,经常会遇到有些时候手机没有信号没有网络什么的,就访问不了应用了,但是我们应用有很多东西又是不怎么变化...

  • H5 离线缓存

    离线缓存 什么是离线缓存,为什么要用它?这是我们需要思考的问题。 顾名思义,离线缓存,就是离线了你的东西内容也缓存...

  • 应用缓存

    h5的应用缓存简称为Appcache,是专门为开发离线应用而设计的。Appcache就是从浏览器的缓存中分出来的一...

  • HTML5 应用程序缓存

    使用H5,通过创建 cache manifest 文件,可以轻松的创建web应用的离线版本 什么事应用程序的缓存(...

  • iOS获取App缓存文件的大小并清除缓存

    App在处理网络资源时,一般都会做离线缓存处理,其中最典型离线缓存框架为SDWebImage。 但是,离线缓存会占...

  • H5新增 离线缓存

    一、概述: 1.HTML5的离线web应用允许我们在脱机时与网站进行交互。这在提高网站的访问速度和制作一款web离...

  • H5 的离线缓存

    1:在html标签中添加 : manifest文件 如 2:在服务器添加:mime-type text/ca...

网友评论

      本文标题:h5 离线缓存

      本文链接:https://www.haomeiwen.com/subject/rumdzxtx.html