H5的缓存Manifest的使用

这次给大家带来H5的缓存Manifest的使用,使用H5的缓存Manifest注意事项有哪些,下面就是实战案例,一起来看一下。

在app中更新h5页面一直有缓存问题。默认什么都不做的情况下,app有一定的空间缓存页面。一开始更新之后会马上加载,等到app缓存空间上来之后更新就无法下载了。安卓能够清理缓存空间,ios就只能卸载重装(are u kidding me?)。这是最坏的情况,你可以更换下地址。

no-cache

注意到这一点之后,页面加入no-cache.


登录后复制

告诉浏览器不要缓存页面。实际是页面没有发生改变的时候请求是304,如果页面改变了才是200,所以说加了no-cache不是说每次都全新下载,而是更新了就会重新下载。但这个时候不同的手机表现还是不一样的。4s与6sp就不同。访问同一个页面,修改了js。4s更新了,6sp还是老样子。咋整呢,因为服务端还有缓存。先设置nginx缓存:

 location / {           root   html;           expires -1;           index  index.html index.htm;        }

登录后复制

并需要重启下nginx:

nginx -s reload

登录后复制

这个时候6sp也更新了。

但老是重启nginx不是办法啊,可能造成一些请求丢失。而且这种情况下,离线是完全不能用了。比如断网了去发消息,原本设置的一张红色叹号的图片和人物的头像都显示不出来。当然可以转成base64的字符串解决这个问题。base64就是很长,放在哪儿都占空间。怎么解决,manifest

no-cache+更新文件名+更新地址 待测

 manifest

介绍可以先看w3shool的:http://www.w3school.com.cn/html5/html_5_app_cache.asp ,这里就说下使用的情况。

1.设置html


登录后复制

2.设置缓存目录

CACHE MANIFEST#v1.0.0.0#需要缓存的文件js/zepto.js#不需要缓存的页面NETWORK:*#无法访问页面FALLBACK404.html

登录后复制

3.设置nginx mime

text/cache-manifest         appcache;

登录后复制

mime types文件都在conf目录下。启动nginx之后。这个时候页面会出现加载情况:

 H5的缓存Manifest的使用

这个图说明2个事情,一个是流程上会先下载index.appcache,然后会陆续触发checking event,download event,progress event 和 updateReady event.二个是默认缓存了当前页面。而且居然是带个参数也缓存。看样子只要地址不一样的当前页都给缓存了(上面的缓存目录我只写了一个zepto)。再刷新页面:

H5的缓存Manifest的使用

 index.appcache没有更新就不会触发检查。 

 H5的缓存Manifest的使用

 加载缓存的文件状态是200,size一栏是from cache。从浏览器加载的是304,时间上一个是几毫秒,一个是十几毫秒。 f12进入开发者模式,在Application cache一栏可以看见被缓存的文件。

H5的缓存Manifest的使用

但在这个地方是无法清理的,需要在Application 中的 clear storage来清理。

H5的缓存Manifest的使用

 更新已缓存的文件

 最明显的就是首页,默认缓存下来。这个时候你改变首页内容而不修改index.appache是完全没有作用的。比如你删掉一个js的引用,客户端还是下载了这个js。这个时候你需要修改这个缓存文件:

#不需要缓存的页面NETWORK:  mobile/index.html*

登录后复制

注意到虽然index.appache和index位于同一级,但不能写index.html,得写相当于网站的路径,其他资源也是一样。这个时候触发更新了,但页面还是加载的缓存资源,所以还需要做一个处理:

  window.applicationCache.addEventListener("updateready", function(){    location.reload()  });

登录后复制

这样才会加载最新的页面。如果首页再发生修改,可以随意(加个空格,加空行)修改缓存文件,就能触发更新。所以剩下的问题就是记得在更新资源之后记得更新缓存文件。建议就是不变的资源(框架样式,框架js,图片)缓存下来,经常要修改的js就让浏览器缓存吧。现在这样就避免了reload nginx。这个效果要比加no-cache的方法好。当然,如果无所谓消息或者reload的影响。no-cache还是很方便,毕竟这个index.appache一旦加上,难以去掉,除非清理缓存。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

webpack的样式加载详解

JS事件先发布后订阅的方法

以上就是H5的缓存Manifest的使用的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2782077.html

(0)
上一篇 2025年3月8日 16:26:05
下一篇 2025年3月1日 03:51:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • webpack自动刷新与解析的使用

    这次给大家带来webpack自动刷新与解析的使用,使用webpack自动刷新与解析的注意事项有哪些,下面就是实战案例,一起来看一下。 前端需要频繁的修改js和样式,且需要根据浏览器的页面效果不断的做调整;而且往往我们的开发目录和本地发布目录…

    2025年3月8日 编程技术
    200
  • html5动画实现舞动的雨伞

    这次给大家带来html5动画实现舞动的雨伞 ,实现html5动画舞动的雨伞的注意事项有哪些,下面就是实战案例,一起来看一下。 HMTL5的学习断断续续,方法不用又生疏了,昨天做的一个雨伞的Demo,先看看效果 主要是运用了中心点变换和旋转两…

    2025年3月8日
    200
  • Html5的localStorage使用详解

    这次给大家带来html5的localstorage使用详解,html5的localstorage使用注意事项有哪些,下面就是实战案例,一起来看一下。 localStorage是Html5新加入的特性,这个特性主要用来做浏览器本地存储 一、判…

    编程技术 2025年3月8日
    200
  • React BootStrap框架如何使用

    这次给大家带来React BootStrap框架如何使用,使用React BootStrap框架的注意事项有哪些,下面就是实战案例,一起来看一下。 安装 【相关视频推荐:bootstrap教程】 在终端cd到你的项目目录下执行:$ npm …

    2025年3月8日
    200
  • vue中使用cropperjs

    这次给大家带来vue中如何使用cropperjs,vue中使用cropperjs的注意事项有哪些,下面就是实战案例,一起来看一下。 用vue的项目里需要对图片进行裁剪,于是使用了cropperjs,在使用的过程中也踩过一些坑,以下是在.vu…

    2025年3月8日
    200
  • Immutable及React应该如何使用

    这次给大家带来Immutable及React应该如何使用,Immutable及React使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Immutable 可以给 React 应用带来数十倍的提升,也有人说 Immutable 的引…

    2025年3月8日
    200
  • plotly.js 绘图库怎样使用

    这次给大家带来plotly.js 绘图库怎样使用,使用plotly.js 绘图库的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了plotly.js 绘图库入门使用教程,分享给大家,具体如下: Plotly 缘起 这两天想在前端…

    2025年3月8日
    200
  • babel的使用详解

    这次给大家带来babel的使用详解,babel使用的注意事项有哪些,下面就是实战案例,一起来看一下。 安装及配置 npm install babel-cli –save-dev 或者 cnpm install babel-cli…

    2025年3月8日
    200
  • JS和H5编写推箱子游戏

    推箱子小游戏是一款多年前很流行的小游戏(即使现在也有很多人玩),游戏目的很简单,就是人推箱子,把所有的箱子推到目的地,就游戏成功:看似跟简单的逻辑,其实还是有一定难度的,我也是依靠了别人的帮助才完成的,现在开始介绍如何用js,html5编写…

    2025年3月8日
    200
  • JavaScript和HTML5编写游戏Flappy Bird简易版

    上一篇文章我们和大家分享了JS和H5编写推箱子游戏,本文主要和大家分享用js和H5标签编写经典游戏:Flappy Bird 简易版,希望能帮助到大家。 声明:本人初学js和h5,本文涉及编写方式以及算法如有更好地改进,请各位大佬提出建议~ …

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论