AS3:“ URL +随机数”缓存技巧问题

时间:2019-05-13 18:20:52

标签: actionscript-3 caching optimization browser-cache bandwidth

当我的Flash项目下载远程资产时,我想使用浏览器缓存来节省带宽。但是,如果该资产已更新,我希望一次下载更新的版本并替换缓存,以便下次需要它时,将使用更新的缓存版本。这可能吗?

当前,我正在检查下载的资产的CRC是否匹配。如果不是这样,我会通过在网址末尾添加"?" + Math.random()*10000来防止缓存。但是问题是,这意味着文件永远不会被缓存,直到用户清空浏览器缓存,对吗?

假设位于www.myWebsite.com/myAsset的文件的第一个版本的CRC为0x00000001。第一次播放Flash时,它会下载myAsset并将其放入浏览器缓存中。在接下来的几次Flash播放中,由于从缓存中提取了myAsset,因此节省了带宽。

但是,然后我上传了一个新版本的myAsset,它的CRC为0x00000002。下次播放Flash时,它将首先尝试使用www.myWebsite.com/myAsset的旧缓存,但会发现CRC不匹配,因此它将文件重新下载为www.myWebsite.com/myAsset?81234。问题在于,每次播放Flash时,都会继续进行重新下载,因为缓存中的0x00000001版本将永远不会与新版本匹配,从而无法达到缓存的目的。

是否可以使用新的www.myWebsite.com/myAsset版本更新0x00000002的缓存?

0 个答案:

没有答案