r***@163.com
r***@163.com
  • 发布:2016-07-30 13:10
  • 更新:2016-07-30 14:06
  • 阅读:1237

能否增加内存操作的接口呢?

分类:HTML5+

因为HTML页面的原因,无法像原生APP那样共享内存数据,各个页面很多的数据都得分别读取一次,我感觉非常浪费内存,导致做出来的app很卡,内存开销巨大。

而且页面传值,保存公共变量都是很大的麻烦,要不断地去做重复的工作。

不知道DCloud能否提供内存的操作接口呢,像Storage那样的就可以,不但加快app速度,也可以减小内存消耗,使app内全局变量成为可能。

这个我感觉是很重要。 不清楚安卓和ios能否实现这个接口?

2016-07-30 13:10 负责人:无 分享
已邀请:
lhyh

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

该问题目前已经被锁定, 无法添加新回复