wordpress网站模板下载失败,建设一个网站用什么软件下载,网站定位策划书,wordpress插件证书认证网站最近在做UnityWebgl热更的时候#xff0c;我的热更程序集更新#xff0c;而我所有运行过项目的设备都没有更新成功。而没运行过的设备则运行的是最新的程序集。那么说明必然是和缓存有关系了。 特意查了一下问题#xff0c;发现Edge浏览器会把一些比较小的图片、脚本等资源进… 最近在做UnityWebgl热更的时候我的热更程序集更新而我所有运行过项目的设备都没有更新成功。而没运行过的设备则运行的是最新的程序集。那么说明必然是和缓存有关系了。 特意查了一下问题发现Edge浏览器会把一些比较小的图片、脚本等资源进行缓存以便下次再次运行的时候能够更加快速流畅。我这里使用的是HybirdCLR做代码热更发现这个热更程序集会被浏览器缓存所以热更后浏览器依然读的是缓存的旧程序集。 查了很多资料有些人说需要JS原生开发去处理缓存做好版本控制。我这里发现了另外一种方式在Unity内也可以直接做到。
1、下面是我的测试案例 代码 string testpersistentDataPathPath Application.persistentDataPath 1.txt;Debug.Log(Application.persistentDataPath);Debug.Log(persistent是否存在 File.Exists(testpersistentDataPathPath));if (File.Exists(testpersistentDataPathPath)){Debug.Log($存在Persistent他的内容是{File.ReadAllText(testpersistentDataPathPath)});}else{Debug.Log($写入 {testpersistentDataPathPath});File.WriteAllText(testpersistentDataPathPath, 哈哈哈);} 1、查找webgl的持久化路径Application.persistentDataPath它是存在的打印出来的是/idbfs/7e2ca8b4761dc653a9fdda6daab68d82。 2、使用IO去写入一个txt文件内容为哈哈哈也写入成功了。 3、第二次进入直接就可以读了那么说明确实是缓存成功了。 似乎被缓存到了Cookie中我删除记录后就需要重新写入了。
那么既然我已经可以直接用File读到缓存的文件了那么说明我也可以去判断程序集是否更新通过MD5也行、版本控制都可以。 2、以下来自ChatGPT4.0的解释 在Unity WebGL中Application.persistentDataPath实际上是一个虚拟文件系统Virtual File System, VFS它在运行时通过浏览器的IndexedDB存储数据。这种方式让你感觉像是在写入文件系统但实际上是利用浏览器的存储机制来持久化数据。因此你可以成功写入文件但这些文件是存在于浏览器的IndexedDB中而不是本地文件系统中。 3、temporaryCachePath我顺便测了下这个路径这个路径用得比较少。实测在webgl中无法写入 4、以下来自Unity官网的解释