LoadFromCacheOrDownload的version参数之我见

环境:win10, unity2018, vs2015

最近在弄ab包
有几种加载方式,其中一种就是

WWW.LoadFromCacheOrDownload(string url, int version)

url是ab包的地址,version是版本号
问题就出在这个version上

看官方文档也没有说清这个版本号是哪来的,干什么用的

进行了大量搜索以及使用,才大概弄明白

首先,这个version版本号并不记录在ab包文件中,比如对应的manifest文件
那是从哪来的呢

其实很简单,这个版本号是开发者自己赋予的。

而赋值的地方恰恰就是这句代码

WWW.LoadFromCacheOrDownload(string url, int version);

即,当你用这个语句加载包时,比如咱们把version设置为2
系统会判断你本地有没有加载过这个包,有的话,再看加载过的包的版本是不是2
如果没有版本号为2的,则从url地址下载到本地缓存,并且给这份缓存编一个version号,即2

这个我是做webgl程序时试用的
也就是说,如果你在一个浏览器中第一次打开你的webgl项目,你在上面的加载语句中给了一个版本号是2,那浏览器看到本地没有缓存就会去url地址上下载,并将2做为版本号赋给这份缓存。下次再打开,如果程序没变,版本号还是2,那么本地有之前下载的缓存且版本号为2,程序就不会从url处下载,而是直接读取本地的缓存。这就是缓存的意义所在吧。

那么下次再打开,而请求的版本号改为了3,同理,程序判断本地缓存没有版本号为3的,同样再从url处下载到本地,存成另一份缓存,并赋予其3做为版本号

综上,你以一个版本号来请求时,程序(浏览器)会在本地已有的缓存中查找,如果已有此版本号的缓存,则直接从本地该缓存读取,如果没有则从url处下载,存到本地,赋予本次请求的版本号

所以之前最大的纠结就是这个版本号到底是在哪里设置的,其实就是在请求下载的时候那个参数。
另外,如上所述,如果你用不同版本号加载过,那么其实本地会存有不只一份缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值