html5 中创建manifest缓存以及更新方法

热更新之生成文件md5 cocos2dx中有一个热更新类AssetsManagerEx,用这个类实现热更功能时需要有两个文件,project.manifest以及version.manifest。这里主要是project.manifest文件,里面需要存有资源文件和代码文件的md5值,通过md5的不同得出差异文件然后下载。 这里通过python来实现这两个文件。 创建一个python文件generateManifest 阅读详情

测试环境和工具   chromium  18.0.1025.151 (开发编译版 130497 Linux) Ubuntu 11.04


一、测试内容

         1.A页面manifest缓存的js文件,B页面不设manifest是否能使用缓存的js文件

       2.A页面和B页面分别使用两个不同的manifest文件,但都缓存了同一个js文件,两页面更新缓存时,是否会相互影响?

       3.两个页面使用同一个manifest文件,是否是共用一份缓存?


二、详细测试

      1、A页面manifest缓存的js文件,B页面不设manifest是否能使用缓存的js文件 ?

先上文件

cache.html

[html]  view plain copy
  1. <html manifest="m.manifest">  
  2. <head>  
  3.     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">  
  4.     <script type="text/javascript" src="m.js"></script>  
  5. </head>  
  6. <body>  
  7. ver:1<p>  
  8. <input type="button" value="shwo_ver" onclick="show_ver();" /><p>  
  9. <input type="button" value="load_js" onclick="load_js();" /><p>  
  10. <input type="button" value="is_online" onclick="is_online();" /><p>  
  11. </body>  
  12. </html>  

un_cache.html

[html]  view plain copy
  1. <html>  
  2. <head>  
  3.     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">  
  4.     <script type="text/javascript" src="m.js"></script>  
  5. </head>  
  6. <body>  
  7. ver:1<p>  
  8. <input type="button" value="shwo_ver" onclick="show_ver();" /><p>  
  9. <input type="button" value="load_js" onclick="load_js();" /><p>  
  10. <input type="button" value="is_online" onclick="is_online();" /><p>  
  11. </body>  
  12. </html>  

m.manifest

[plain]  view plain copy
  1. CACHE MANIFEST  
  2. # VERSION  
  3.   
  4. # 直接缓存的文件dd  
  5. CACHE:  
  6. m.js  
  7. m1.js  
  8.   
  9. # 需要在时间在线的文件  
  10. NETWORK:  
  11.   
  12. # 替代方案  
  13. FALLBACK:  

m.js
[javascript]  view plain copy
  1. var ver = "1";  
  2.   
  3. function show_ver() {  
  4.     alert(ver);  
  5. }  
  6.   
  7. function load_js() {  
  8.     javascript:void((function(){var e=document.createElement('script');e.setAttribute('src','m1.js');document.body.appendChild(e);})())  
  9. }  
  10.   
  11. function is_online() {  
  12.     alert(navigator.onLine);  
  13. }  


测试方法:

分别访问cache.html和un_cache.html, 查看js版本都是为“1”. 

 然后修改m.js的版本为“2”.

刷新两个页面再次查看,cache.html显示为“1”, 而un_cache.html显示为“2”

测试结论:manifest建立的缓存文件,不会被没有manifest的页面读取。


2.A页面和B页面分别使用两个不同的manifest文件,但都缓存了同一个js文件,两页面更新缓存时,是否会相互影响?

新增两个文件

cache1.html

[html]  view plain copy
  1. <html manifest="m1.manifest">  
  2. <head>  
  3.     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">  
  4.     <script type="text/javascript" src="m.js"></script>  
  5. </head>  
  6. <body>  
  7. ver:1<p>  
  8. <input type="button" value="shwo_ver" onclick="show_ver();" /><p>  
  9. <input type="button" value="load_js" onclick="load_js();" /><p>  
  10. <input type="button" value="is_online" onclick="is_online();" /><p>  
  11. </body>  
  12. </html>  

 

m1.manifest

[plain]  view plain copy
  1. CACHE MANIFEST  
  2. # VERSION   
  3.   
  4. # 直接缓存的文件dd  
  5. CACHE:  
  6. m.js  
  7. m1.js  
  8.   
  9. # 需要在时间在线的文件  
  10. NETWORK:  
  11.   
  12. # 替代方案  
  13. FALLBACK:  


测试方法:

改动一下两个manifest文件,访问cache.html和cache1.html,确保都建立新缓存,并且显示js版本号一致;

修改m.js的版本号,并改动一下m.manifest文件;

刷新cache.html和cache1.html,并再次查看js版本号,发现cache.html的版本号变了,但cache1.html的版本号没有变化。

测试结论:不同manifest文件的缓存,不会相互之间有影响


3.两个页面使用同一个manifest文件,是否是共用一份缓存?

新增cache2.html代码完全同cache.html.

测试方法:

访问cache.html和cache2.html,并确保都是显示最新js版本“4”;

修改js版本为“5”,并改动没m.manifest文件;

刷新cache.html,显示js版本为“5”;

修改js版本为“6”, 然后刷新cache2.html,显示js版本为“5”,而不是“6”.

测试结论:同一manifest文件的缓存只有一份,被多个页面使用时也是如此


三、总结

     通过以上测试,我们有理由可以这么认为:一个manifest文件会创建一份缓存,不同的manifest文件其缓存的内容是互不干扰的。这些特性应该有相关文档说明的,但可惜我没有找到有,若大家找到有,请分享给我一下

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

相关推荐

manifest.json 文件加载失败的原因及解决方法

当 manifest.json 文件无法正确加载时,首先检查文件路径、MIME 类型、语法错误和缓存问题。通过逐个排查这些可能的原因,你应该能够解决 manifest.json 文件加载失败的问题,并使你的应用能够正常工作。manifest.json 文件在前端开发中被用于定义网页应用的元数据,包括应用的名称、图标、版本号等信息。如果你的 manifest.json 文件无法正确加载,可能会导致应用在试图安装或使用期间出现问题。检查文件的相对路径或绝对路径是否正确,尤其是在引用该文件的 HTML 文件中。

IOWEL的博客 4689

项目js文件修改后chrome不能及时更新的解决办法

在做web开发过程中,经常需要调试js代码,而在这个时候我们修改过的代码可能不能生效。这是因为浏览器默认是有缓存的,但是这个时候缓存就会影响我们的调试工作,在这里就介绍一下chrome浏览器解决该问题的方法。 方法一:调试前清除浏览器缓存 在浏览器设置界面中 或使用快捷键直接清理缓存 ctrl+shift+delete 二、设置浏览器不缓存页面 在调试页面中勾

小冬瓜的博客 2万+

AstrBot插件开发全攻略:从零编写一个天气查询插件(Python实战)

本文提供了一份详细的AstrBot插件开发实战指南,手把手教你使用Python从零编写一个智能天气查询插件。内容涵盖插件系统核心设计、开发环境搭建、API调用与数据处理、自然语言交互实现以及插件打包发布全流程,帮助你快速掌握基于AstrBot框架的聊天机器人功能扩展技能。

weixin_29212867的博客 1082

H5 Manifest实现缓存刷新

最近手头的微信项目即将上线,有大量优化工作,发布频率有点快,导致测试人员微信里的样式直接打开根本刷新不出来(需手动刷新多次),考虑以后客户的行为,我们想到了刷新缓存。 市场上通用的几种刷新缓存方式:手动(2C项目忽略,用户根本不知道),样式、Js文件名+版本号(项目管理中,个人感觉不太适合),Manifest(H5推出的) Manifest  应用程序缓存,带来三个优势: 离线浏览

俞祥胜的.Net进阶之旅 2731

GD32单片机引脚复用指南:如何让JTAG接口的PA15/PB3发挥第二功能?

本文详细介绍了GD32F103Cx系列单片机如何通过AFIO模块进行引脚复用,特别是将默认用于JTAG调试接口的PA15、PB3等引脚释放为普通IO或复用功能引脚。文章从原理出发,结合代码实践,讲解了如何配置调试端口重映射,将JTAG引脚安全地转换为GPIO或定时器通道,并提供了常见问题排查与最佳实践,帮助开发者高效利用有限的引脚资源。

nept的博客 808

在 dell precision 7920 tower CentOS 8 Stream 上安裝nvidia驱动程序、Anaconda

简单记录一下如何在实验室dell precision 7920 tower CentOS 8 Stream上安装nvidia显卡驱动。

chen9046的博客 994

HTML 5 应用程序缓存(Application Cache)cache manifest 文件使用 html5 中创建manifest缓存以及更新方法 一个manifest文件会创建一份缓存,...

HTML5 离线缓存-manifest简介 HTML 5 应用程序缓存 使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 应用程序缓存为应用带来三个优势: 离线浏览...

weixin_34015566的博客 232

YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题

1.首先,WTConv利用二维Haar小波变换对输入图像进行多级分解。低频分量 (LL):捕捉图像的低频信息,如整体形状或轮廓。水平高频分量 (LH):捕捉图像中的水平边缘信息。垂直高频分量 (HL):捕捉图像中的垂直边缘信息。对角线高频分量 (HH):捕捉图像的对角线细节。在每一级的小波变换中,图像被下采样(空间分辨率减半),但频率信息得到了更细的分解。递归地执行小波变换(称为多级分解)可以得到不同尺度下的频率分量。

qq_64693987的博客 1万+

HTML5创建 cache manifest缓存文件

今天看到H5通过创建与配置.manifest文件实现web应用程序缓存,Mark下来供进一步学习:

Vin的学习专栏 5169

MIKE水动力笔记5_建立水动力模型

前文已经讲了如何制作网格文件(.mdf文件),这一博文就讲如何建立水动力模型。

晏长街的博客 3万+

对角两对双差速轮AGV的平移、直行、转弯和原地旋转之PID控制

本示例将展示如何使用PID控制算法,控制具有对角线布置的两对双差速轮(左前和右后)的AGV,实现平移、直行、转弯和原地旋转等运动。通过对车辆的运动学和PID控制器的设计,我们可以精确地控制AGV的运动

xiaoc100200的博客 1510

HTML5使用manifest缓存

因考虑到需要HTML5使用到web缓存网上找到了看到关于manifest方式来进行web本地化的缓存效果。 在自己的项目案例中引用并谈谈自己的感受: 1.首先我们需要在我们的文件目录中新建一个manifest文件“test.manifest” 2.这是一个简单的manifest文件。文件内开始的时候需要“CACHE MANIFEST”是声明这是一个manifest文件。“CACHE:

qq_35515563的博客 2025

Avalonia 超级详细学习指南

什么是 Avalonia?Avalonia 是一个开源的、跨平台的 GUI 框架,允许开发者使用 XAML 和 C# 构建现代化、高性能的桌面应用程序。与其他框架相比,Avalonia 具有强大的跨平台能力和灵活的界面设计。} }()Avalonia 的特点和优势跨平台性:Avalonia 可以在 Windows、Linux、macOS 等多个平台上运行,开发者可以编写一套代码,然后在不同的操作系统上运行相同的应用程序。

仰望星空的博客 1万+

html5离线缓存--manifest

移动web和移动app一直都是在其各自的领域内,各司其职,井水不犯河水。web端只要有浏览器,便能看遍天下网站,但是完全离不开网络,app则强大到无所不能,但是用必须要下载。各有各的优势,各有各的局限,直到html5的出现,两者的界限不断被刷新,webapp开始被广泛使用。说到这里,不得不提到h5中推出的一个离线缓存的新特性,正是它,大大拉近了web与app的距离。废话不多说,开讲--manife

jiangcs520的专栏 4537

杰理SDK入门教程(二):USB升级程序

开发板升级操作指南 摘要:本文介绍了开发板程序升级的两种方式(常规升级和串口升级),重点说明了常规升级的操作步骤: 拨码设置:提供4种拨码方式(不拨/1档/2档/3档),对应不同指示灯状态和按键要求 硬件连接:强制升级工具需正确连接电脑和开发板(注意USB接口方向) 升级流程:根据拨码状态操作按键,观察指示灯变化(红灯常亮绿灯灭表示进入升级模式) 执行升级:运行SDK中的download.bat完成升级 文中还包含拨码开关说明、指示灯状态对照表以及升级原理说明,帮助用户理解升级过程。升级成功后在设备管理器可

qq_42014563的博客 1117

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HTML5 应用程序缓存

HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。离线浏览 - 用户可在应用离线时使用它们速度 - 已缓存资源加载得更快减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。

dodo2016的博客 1778

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

html5 manifest缓存

html5 manifest缓存html5给予了一个很好的webapp开发环境,有些时候我们会希望我们的应用像原生应用一般能被完全离线访问,而不同于我们所说的缓存优化,那我们就需要使用到html5 提供的mainfest标签,具体用法如下index.html<!DOCTYPE html> <html lang="en" manifest="manifest.appcache"> <head>

ali1995的博客 2239

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

HTML5应用缓存 manifest

定义 使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。 将 web 应用进行缓存,并可在没有因特网连接时进行访问。 应用程序缓存为应用带来三个优势: 离线浏览 - 用户可在应用离线时使用它们 速度 - 已缓存资源加载得更快 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源 缓存方法 1、web 服务器配置MIME类型:MIM...

蒲公英芽的博客 678

HTML5新增离线缓存Manifest

Cache Manifest 是一个后缀名为.minifest的文件,在文件中定义那些需要缓存的文件,支持 Cache Manifest 的浏览器,会将按照.manifest文件的规则,将文件保存在本地,从而在没有网络链接的情况下,也能访问页面。当第一次正确配置 app cache 后,再次访问该应用时,浏览器会首先检查.manifest文件是否有变动,如果有变动就会把相应的变动更新下来,同时改变浏览器里面的 app cache,如果没有变动,就会直接把 app cache 的资源返回,基本流程是这样的。

Jackson_Mseven的博客 654

HTML5 离线缓存-manifest

HTML5 离线缓存-manifest 什么是Cache Manifest 首先manifest是一个后缀名为minifest的文件,在文件中定义那些需要缓存的文件,支持manifest的浏览器,会将按照manifest文件的规则,像文件保存在本地,从而在没有网络链接的情况下,也能访问页面。 当我们第一次正确配置app cache后,当我们再次访问该应用时,浏览器会首先检查manifest文件是否有变动,如果有变动就会把相应的变得跟新下来,同时改变浏览器里面的app cache,如果没有变动,就会直接

T_shiyi的博客 648

HTML5 离线缓存更新机制和更新方法 and chrome查看缓存方法

查看缓存详细情况:chrome://appcache-internals/  缓存更新机制: web应用的缓存只有在manifest文件被修改的情况下才会被更新,所以如果你只是修改了被缓存的文件,那么用户本地的缓存还是不会被更新的,但是你可以通过修改manifest文件来告诉浏览器需要更新缓存了。利用这点,你可以像上面的例子中那样,写一句这样的注释一个文件版本:

1602

html5页面缓存,HTML5的manifest缓存

要使用manifest缓存,我们首先需要写一个manifest文件。这个文件有严格的格式要求,下面是个例子CACHEMANIFEST#我是注释,这个文件名叫test.manifestCACHE:/test.css/test.js这就是一个简单的manifest文件。一开始必须是“CACHEMANIFEST”来声明这是一个manifest文件。后面的“CACHE:”是操作类型,再后面的两个文件按路...

weixin_42307478的博客 296
上一篇: Intent的FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT
下一篇: java获取对象属性类型、属性名称、属性值
mincheat
博客等级 码龄17年 46粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值