冰鱼
冰鱼
  • 发布:2015-05-14 14:21
  • 更新:2015-05-14 16:49
  • 阅读:7671

每次页面跳转用mui.openWindow会不会占用很大内存?

分类:MUI

如题,旧的页面是不是还在内存中存在,一般的页面跳转是不是用超链的方式更好?红米1手机调用拍照功能,在拍完照片,点击确认对号的时候,我的应用经常性的重启到登陆页面,会不会是内存占用的问题?

2015-05-14 14:21 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

不能每次用mui.openWindow。
不用的webview要close,一个webview被close后会露出其他没有被close的webview。
跳转页面要用plus.webview.show方法,新开重复的webview当然是多消耗内存的。
具体参考 http://www.html5plus.org/doc/zh_cn/webview.html

mui里与webview相关的部分,只是对plus.webview的常用操作做了一些封装,让常用的操作调用更简单。但更全面的api,都在plus.webview里。

  • 冰鱼 (作者)

    好的,谢谢

    2015-05-14 16:26

伟伟

伟伟

希望这个能参考一下apicloud,他们的做法是如果这个webview已经存在,再次open的时候,会把这个webview提到最前来,我觉得这个做法挺好的,在plus.open的时候加一个参数来控制是否再开一个相同的。而且我觉得这个改动应该不难

  • 冰鱼 (作者)

    谢谢

    2015-05-14 16:27

DCloud_UNI_CHB

DCloud_UNI_CHB

若打开页面使用的是mui.openWindow方法,关闭页面同样使用mui封装的关闭按钮或mui.back,则关闭页面时会自动close webview,不会在内存中存在冗余的webview;

你可以通过如下js代码检测内存中是否存在冗余、重复的webview:

var array = plus.webview.all();  
 if(array){  
    for(var i=0,len=array.length;i<len;i++){  
            console.log(array[i].getURL());  
        }  
}

确认一下你的情况在其它手机上是否存在,也可以把测试代码发过来,我们帮忙验证。

  • 冰鱼 (作者)

    照相重启红米1有这个问题,我的htc没有这个问题,那登陆完成后跳转怎么把这个登陆页面关掉,有关闭父窗口的方法吗?

    2015-05-14 16:31

  • 冰鱼 (作者)

    我用getLaunchWebview获取到首页(登陆页),然后用close方法关闭了,这样应该可以吧

    2015-05-14 16:40

  • 冰鱼 (作者)

    拍照的问题,不光在我的应用里有,她的红米1调用咱提供的例子里的拍照也是重启,应该是咱框架的问题

    2015-05-16 11:31

  • DCloud_UNI_CHB

    提供的例子是什么例子?hello 5+?

    2015-05-20 18:08

Danny

Danny - QQ125904483

不可以每次都是用openWindow来打开窗体,如果存在同ID的WV,会出现莫名的问题,WV过多也会直接导致效率低下,每次openWindow之前得先判断,如果存在就get一下,然后show出来,建议官方可以重写一个openWindow,打开之前先验证。

这个问题就是重复加载了一样的WV所致:
http://ask.dcloud.net.cn/question/5237

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