LoadFromCacheOrDownload的version參數之我見

環境:win10, unity2018, vs2015web

最近在弄ab包
有幾種加載方式,其中一種就是瀏覽器

WWW.LoadFromCacheOrDownload(string url, int version)

url是ab包的地址,version是版本號
問題就出在這個version上緩存

看官方文檔也沒有說清這個版本號是哪來的,幹什麼用的ide

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

首先,這個version版本號並不記錄在ab包文件中,好比對應的manifest文件
那是從哪來的呢url

其實很簡單,這個版本號是開發者本身賦予的。code

而賦值的地方偏偏就是這句代碼開發

WWW.LoadFromCacheOrDownload(string url, int version);

即,當你用這個語句加載包時,好比我們把version設置爲2
系統會判斷你本地有沒有加載過這個包,有的話,再看加載過的包的版本是否是2
若是沒有版本號爲2的,則從url地址下載到本地緩存,而且給這份緩存編一個version號,即2文檔

這個我是作webgl程序時試用的
也就是說,若是你在一個瀏覽器中第一次打開你的webgl項目,你在上面的加載語句中給了一個版本號是2,那瀏覽器看到本地沒有緩存就會去url地址上下載,並將2作爲版本號賦給這份緩存。下次再打開,若是程序沒變,版本號仍是2,那麼本地有以前下載的緩存且版本號爲2,程序就不會從url處下載,而是直接讀取本地的緩存。這就是緩存的意義所在吧。string

那麼下次再打開,而請求的版本號改成了3,同理,程序判斷本地緩存沒有版本號爲3的,一樣再從url處下載到本地,存成另外一份緩存,並賦予其3作爲版本號

綜上,你以一個版本號來請求時,程序(瀏覽器)會在本地已有的緩存中查找,若是已有此版本號的緩存,則直接從本地該緩存讀取,若是沒有則從url處下載,存到本地,賦予本次請求的版本號

因此以前最大的糾結就是這個版本號究竟是在哪裏設置的,其實就是在請求下載的時候那個參數。另外,如上所述,若是你用不一樣版本號加載過,那麼其實本地會存有不僅一份緩存。

相關文章
相關標籤/搜索