缓存是一个概念。
缓存是一种思想。
很多时候,我们在不知不觉中发现,缓存是一种有用的经验,他应用于一切需要的场合,甚至可以应用于一些不那么需要,但是添加了即可增加体验感的方面。这里并不是提倡一直要使用缓存,而是“尽可能多地使用缓存”。
在应用cocos-js引擎中发现,缓存无处不在。想必引擎开发者对这个是极为在意的。那么缓存在引擎中体现的地方又有哪些呢。简单的例子,加载图集,加载ui的json文件,加载引擎等等。缓存在应用中最大的作用是,能够避免用户的流量,同时也能够更加快速的加载文件,而不是相反:一次一次的重新加载文件。引擎最大的效果在于,几乎所有的文件,都是下载到本地的,怎么见得呢。例如在开发html5应用中,经常发现api的调用如下:
Perload->load,前者是下载,或者是加载。
这里也要谈谈项目中,为什么也要采取缓存思路,以及采取缓存思路的应用场合。例如,热更新,我们需要缓存到本地,重新下载的标识则是每个文件的md5值。在应用某阶段中,应用会进行预下载要使用文件,然后应用就可以仅仅下载一次,然后反复运用这些预先加载的文件了。应用的地方还包括,可以给每个内部要使用的文件进行一次赋值md5存储到json对象中,例如。使用的过程就是每次预先进行本地的文件和预先下载的json的文件进行对比,如果有添加,即可进行push到下载列表,否则不push;另外,已经存在本地的文件,要和json中的文件进行md5值比较,发现不同,也要push到下载列表,相反不push。思路都是极其简单的,应用起来也不难。
var load = function (file, type,path) {
if (!json)
return cc.log("%s does not exist", file);
var ext = extname(file).toLocaleLowerCase();
//if (ext !== "json" && ext !=="exportjson")
// return cc.log("%s loaderror, must be json file", file);
屏蔽两行,即可加载带V值的json文件。而其他的image或者audio则是默认支持的,所以可以不用处理,即可实现带V值刷新。有关缓存的更多概念,或者应用,这个需要不断的加强思维和意识,不能放松对缓存的应用,“尽可能多的,而不是少的,以设计缓存方式为基础的思想,产品还能具备更多设计思路”。
这里还打个插曲。最近发现由于时差的问题,我们的服务器今天上午八点是6号,但是美国用户分享是5号,这是一个问题。所以针对这类问题,我们可以以服务器端时间为准,不过针对时差较大的用户,他会觉得奇怪!为什么我的分享是7月8号,今天明明是7号?这样显示UI上面,又会出现疑问,这是一个命题,毕竟服务器不再各个地区有设置啊。时差是问题之一;另外的一个问题:用户的电脑时间不按照套路出牌,居然超前72小时或者延时24小时,这也是一个问题。这说明,客户端的取值时间是不靠谱的,不过这类情况确实不在预期之内。
领取专属 10元无门槛券
私享最新 技术干货