请教下大佬们有无移动端 app 上 h5 页面休眠/内存优化思路

6 天前
 sheyue

背景:业务上的 app 上有用 webView 加载多个 h5 页面(小游戏、活动),分 tab 对应展示(类似浏览器),每次只会激活一个页面,现在几个页面同时加载的情况下,几个页面因为相对复杂,内存占用都很高,导致 app 内存飙很高

预期是没有激活的 tab 能够减少内存占用(从休眠、内存控制等方向),想问下 v 站的大佬们有什么优化思路

ps:以前处理过 electron 上加载多个 browserView 的页面的优化,当时用的是调用其他组给的 dll 包,设置未激活页面进程内存置换部分到物理内存。但是处理移动端页面没啥思路

1105 次点击
所在节点    Web Dev
7 条回复
horizon
6 天前
一样的呀,把状态保存到 localstorage 或者 indexdb 里,visble 的时候再 restore
sheyue
6 天前
@horizon 这种的话,需要每个页面都单独特殊处理,想看看有没有比较通用的处理方式
hengshenyu
6 天前
业务数据内存一般都不大吧,估计大部分是引擎运行时内存。页面隐藏的时候暂停就好,例如各种动画效果。例如 requestanimationframe 这种在后台都会自动暂停的。
hengshenyu
6 天前
如果把状态存 localstorage ,打开时再恢复,页面会闪烁吧
iyeatse
6 天前
iOS WKWebView 不占主进程内存; Android 也可以自己开 webview 多进程
heike8
4 天前
同时打开三个直接杀掉第一个,后台一直保留最多两个。就留个路径重新传给对方。后台超过多久也杀掉。何必纠结
sheyue
3 天前
@heike8 主要不能直接杀掉其它的页面😂,要保留一些页面的状态

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1157832

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX