因为HTML页面的原因,无法像原生APP那样共享内存数据,各个页面很多的数据都得分别读取一次,我感觉非常浪费内存,导致做出来的app很卡,内存开销巨大。
而且页面传值,保存公共变量都是很大的麻烦,要不断地去做重复的工作。
不知道DCloud能否提供内存的操作接口呢,像Storage那样的就可以,不但加快app速度,也可以减小内存消耗,使app内全局变量成为可能。
这个我感觉是很重要。 不清楚安卓和ios能否实现这个接口?
因为HTML页面的原因,无法像原生APP那样共享内存数据,各个页面很多的数据都得分别读取一次,我感觉非常浪费内存,导致做出来的app很卡,内存开销巨大。
而且页面传值,保存公共变量都是很大的麻烦,要不断地去做重复的工作。
不知道DCloud能否提供内存的操作接口呢,像Storage那样的就可以,不但加快app速度,也可以减小内存消耗,使app内全局变量成为可能。
这个我感觉是很重要。 不清楚安卓和ios能否实现这个接口?
lhyh - 目前就职成都
如果只是为了单纯的实现app内全局变量的话,不妨试试 H5里面的localstorage的用法,详细用法网上有各种教程。我觉得这玩意目前最大的局限性之一就是可存储空间很小,还有就是要支持5+的浏览器才可以。一般来说最大的容量是5MB,不同浏览器可能会有不同的大小。不过存储几个变量倒是没有问题,在5+ App内一处存储,到处使用。
常用方法:
localStorage.setItem(key,value);
localStorage.getItem(key);
localStorage.removeItem(key);
比如你在登录页面通过
var userData = {
name:XXX;
};
localStorage.setItem("userinfo",JSON.stringfy(userData));
之后其他的页面直接就可以使用了
var userData = localStorage.getItem("userinfo");
var name = JSON.parse(userData ).name;
r***@163.com (作者)
感谢回复,我现在就在用localstorage,但是有问题,因为需要频繁操作,也就是需要频繁检测和设置其值,所以实际上是频繁读写存储,造成发热量巨大,掉电非常厉害。
现在用的是setinterval,时间300ms,因为需要非常高的实时性,为避免其他页面关闭app时还有数据没有处理完。
我现在一个IM中就会用到,手机一会就烫手。
2016-07-30 14:17
lhyh
回复 r***@163.com:嗯确实是的,你遇到的这个问题比较普遍,我这也一直没有很合理的解决方案。暂时只有先看看官方后续会怎么处理,抱歉没帮上忙
2016-07-30 14:26