目前正在写的一款小程序功能比较多(长列表、富文本、群聊、视频播放),5个tab页面再加两个swiper子页面,标题栏也是用custom自定义的。在ios上测试还可以接受,但是在安卓上性能就有点差了,测试过小米、酷派、华为、魅族这几个机型(比较卡顿,但还可以将就使用),但是在三星手机上,5个tab页全部点开就会出现黑屏闪退问题(必现),调试基本确认是内存太高导致,每次闪退内存都在450M左右。从业务代码上看,已经没有太大的优化提升空间(交互复杂的地方挺多的)。目前能想到的方案就是对已使用过的页面进行内存回收,测试过如下方式:
onShow() {
let homePageData = wx.getStorageSync(‘homePageData’);
console.log(’----onshow----’, homePageData);
if (homePageData) {
for(let key in homePageData) {
this[key] = homePageData[key];
}
console.log(‘重新设置Data’);
}
setTimeout(() => {
wx.removeStorageSync(‘homePageData’);
}, 50)
}
onHide() {
console.log(’—onhide----’, this.$data);
let that = this;
wx.setStorage({
key: “homePageData”,
data: that.$data,
success: () => {
for(let key in that.$data) {
that[key] = ‘’;
that.$apply();
}
console.log(‘清理页面缓存’);
}
})
}
对总内存的影响并不大,想请教下有没有主动销毁页面的办法?
或者有其它更好的优化办法也请告知,谢谢~~