约战
约战
  • 发布:2014-12-21 15:11
  • 更新:2014-12-25 01:52
  • 阅读:9070

关于销毁无用的webview

分类:MUI

1)back nav是否只是隐藏webview?
2)隐藏webview是否会释放资源,是否要关闭webview?
3)能否除了手动关闭,提供一个脚本做到框架里面去,比如开发者给一个有用、将会使用到的的webview的列表,框架主动监测关闭所有无用webview?

2014-12-21 15:11 负责人:无 分享
已邀请:
约战

约战 (作者)

如果关闭和隐藏差别不大的话,那把所有页面都加载一遍然后全部隐藏或者预加载,要用的时候显示一个,这样即又没有加载时间,又不好资源,岂不是完美?

这里有个悖论,隐藏webview后释放资源,那么隐藏的webview放在哪里?如果隐藏webview释放资源,那么和关闭有啥区别,要隐藏来干嘛?

个人观点,框架最好有这样的功能,就是判断当前webview,向上追溯到启动页或者应用根页面,期间在整个树状结构经历了哪些点,无论是opener还是parent,都记录下来,然后自动关闭(或隐藏)所有无用的webview,这样在低端安卓机器上,是否会更顺畅。

多串君

多串君

你想的是进入程序的时候所有页面都开始加载,然后全部隐藏,之后跳页面就直接显示页面就行了是吧?所有页面加载一遍的话,程序差不多就挂了。

然后就是隐藏,当然也占一点资源,官方测试是低端机上隐藏30个webview不会卡死,说明隐藏页面会释放资源而且占有不大。
隐藏和关闭的区别,比如 A页面-----预加载进入--->B页面 。B页面--------B页面关闭,返回A页面 ------------>A页面。
关闭之后当你再要去B页面,就会再加载B页面而出现短暂等待。进常用的页面总是出现等待,体验不好。如果你是隐藏B页面回到A页面的话,再进B页面就没有等待。这是我使用过程中最常见的区别,其他的暂时没发现。

框架自动关闭。。期待。。。

多串君

多串君

1)是隐藏
2)隐藏会释放资源,webview短时间内不用了就可以关闭了。隐藏,关闭我感觉两者资源释放差别不大。
3)把有用的或者将会使用的webview标记给框架。跟你把无用的webview手动关闭差不多的吧。在离开每个你认为以后无用的webview时,写个关闭代码也不会很费事对吧。
以上 我自己的理解,等更专业的回答。

DCloud_heavensoft

DCloud_heavensoft

close是webview彻底销毁。hide是不显示。
你们需要的自动收回内存,在上周发出的HBuilder新版已经有了。
目前最新的5+ runtime,已经实现了自动收回看不见的webview的内存,所以,现在不需要通过控制hide来节约内存了!
目前hide的作用,只是显示和不显示,已经与内存释放没有关系。

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