uniapp 页面跳转卡死问题

1. 页面跳转的几种常用方式:


1.1 uni.navigateTo(OBJECT)


https://uniapp.dcloud.io/api/router.html#navigateto
  会保留页面栈,能通过调用navigateBack返回。但是有页面栈溢出的问题,不能当作通用跳转方法。

1.2 uni.redirectTo(OBJECT)


https://uniapp.dcloud.io/api/router.html#redirectto
  不会保留页面栈,不能返回上一页,返回默认page.json第一个页面。

1.3 uni.reLaunch(OBJECT)


https://uniapp.dcloud.io/api/router.html#relaunch
  销毁页面栈并跳转到指定页面。通常用于退出登录返回首页。

1.4 uni.switchTab(OBJECT)


https://uniapp.dcloud.io/api/router.html#switchtab
  切换选项卡用。

1.5 uni.navigateBack(OBJECT)


https://uniapp.dcloud.io/api/router.html#navigateback
  配合navigateTo,返回页面使用,能有效避免页面栈溢出。可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层。

2 排查思路


  1.根据具体业务场景,逻辑上控制页面跳转和返回,防止页面栈溢出。通过getCurrentPages()判断页面栈有多高;查看webview对象多少,来判断当前跳转方式是否合适。
  2.排查代码逻辑,是否有长时间后台请求不返回的问题,可以在uni.request添加timeout来规避这种情况。
  3.排查内存溢出,是否有创建定时器(setInterval),但是没清空的情况(clearInterval)。
  4.uniapp本身问题,因为其跨平台性需要js调用native,性能肯定会有所损失,如果无法接受还是使用原生语言开发。

  5.删除缓存时,如果是清空数据需要使用uni.clearStorageSync

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值