微信小程序优化多次跳转后卡顿问题

这篇具有很好参考价值的文章主要介绍了微信小程序优化多次跳转后卡顿问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、微信小程序多次跳转会产生卡顿的原理

通过wx.navigateTo 跳转,都会出现保留当前页面,打开新的页面机制。

wx.navigateTo不会将旧页面出栈,会将新页面入栈(栈内元素个数增加,栈内元素5个时,不能再跳转)。手机性能好点,可能10次左右才会导致小程序跳转卡顿崩溃。

二、解决方法:

1、减少wx.navigateTo的使用,看看能不能用wx.redirectTo代替其跳转。

2、如果已经有缓存栈内,是否可以直接将跳转新的页面(有缓存栈),相当于wx.navigateBack返回缓存栈页面。然后修改数据刷新数据即可。

可以将跳转方法统一封装一下如下操作:

//统一跳转  go_to('navigateTo','pages/index/index','keyword=张三&name=李四','get_DataList')
function go_to(type,url,parameter,execute_method){
  let that = this;
  let pages = getCurrentPages();
	if(pages[pages.length-1].route == url){
		wx.showToast({
		  title: '已在当前页面~',
			icon:'none',
		  duration: 1500
		}); 
		return false;
  }

  var delta = 0;
  for (var i = pages.length - 1; i >= 0; i--) {//若存在缓存页面,返回当前页面,parameter不为空时,将会更改返回页面的setdata值(注意:只能改变一个值)
    if (pages[i].route == url) {
      if (delta == 0) {
        return;
      }
      if(parameter){//设置data数据
        let arr = parameter.split('&');
        arr.forEach(item => {
          let newArr = item.split('=')
            pages[i].setData({
              [newArr[0]]:newArr[1]
            });
        });
      }
      if(execute_method){//执行页面方法
        pages[i][execute_method]();
      }
      wx.navigateBack({ delta: delta });
      return false;
    }
    delta++;
  }
  parameter?url = '/'+url+'?'+parameter:url = '/'+url;
  switch (type) {
    case 'navigateTo':
      wx.navigateTo({
        url:url
      });
      break;
    case 'redirectTo':
      wx.redirectTo({
        url:url
      });
      break;
    case 'switchTab':
      wx.switchTab({
        url:url
      });
      break;
    case 'reLaunch':
      wx.reLaunch({
        url:url
      });
      break;
    default:
      wx.navigateTo({
        url:url
      });
      break;
  }
}

然后在相应的位置引入跳转即可。同一个页面跳转到同一个页面,建议直接刷新数据即可,封装的方法里面未做处理。

三、方法简单通用,调用即可。文章来源地址https://www.toymoban.com/news/detail-512538.html

到了这里,关于微信小程序优化多次跳转后卡顿问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 navigator 和 wx.navigateTo不跳转问题

    这个问题可能是很多新手会遇到的问题,有经验的人一眼就能看出问题了 1、先确保 app.js  已经注册了页面路径 2、索要跳转的页面不是 tabBar, tabBar 也可以设置 open-type=\\\"switchTab\\\" 跳转 3、我们来一起分析下 先看有问题的代码,看起来很正常 因为用  navigator 跳转不了,我尝试

    2024年02月05日
    浏览(48)
  • 微信小程序wx.navigateTo跳转参数大小超出限制问题

    微信小程序的跳转方式 wx.navigateTo(Object) :保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回到原页(新页面入栈) wx.redirectTo(Object) :关闭当前页面,跳转到应用内的某个页面(当前页面出栈,新页面入栈) wx.switchTab(Object) :跳转到 tabBar 页面,同时关闭

    2024年02月09日
    浏览(77)
  • 解决微信小程序自定义tabbar跳转页面图标闪动问题

    情况一    如果你的tabbar对应的页面是component,那就在component下面加上 其中的selected是该tab页面对应的索引值 情况二    如果你的tabbar对应的页面是page,那就将上面的if判断写在page的onshow里面 闪动问题就解决啦~

    2024年02月12日
    浏览(47)
  • 微信小程序使用web-view跳转网页解决跳转出现空白或者被拦截问题

    首先,在小程序的页面布局文件中添加web-view组件的引用 给大家先画个草图大家就明白了 具体操作可以私信我,我手把手教你解决

    2024年04月23日
    浏览(41)
  • 【微信小程序内嵌H5调用wx.miniProgram.navigateTo跳转无效问题】

    之前项目遇到的,各种判断逻辑都走通了,代码走到wx.miniProgram.navigateTo面前了就是跳转不了,试了很多种方法,都怀疑是这个api不适用了,结果一次尝试,发现还是地址的问题。 客户给的跳转地址: “pages/check/index/index.html?type=1” 试过但没成功的地址: “/pages/check/index/i

    2024年02月16日
    浏览(45)
  • 基于uniapp开发的微信小程序页面跳转时出现白屏问题的解决方法

    从地区选择跳转到搜索页时会出现20秒白屏才展现搜索页,其它页面就不会出现这个问题,经分析可能是因为地区选择页面中二级联动渲染的数据是本地存储的JSON数据,由于这个数据渲染失误导致了白屏。 因为是二级联动,之前是将cata数组遍历了两遍所以导致了错误,现在

    2024年02月12日
    浏览(95)
  • Nginx 301 https跳转后出现跨域和混合内容问题 —— 筑梦之路

    在浏览器地址栏敲入url访问静态资源目录时,发现默认跳转到了http协议的地址 如上图所示,客户端https请求先到达API网关,然后网关将请求通过http协议转发到静态资源服务器。 调出浏览器发现客户端发送的https请求收到了一个301状态码的响应,并且响应头中的Location字段便是

    2024年02月15日
    浏览(31)
  • 微信小程序 canvas画布clip()在ios端多次裁剪无效

    最近在使用canvas绘制用户电子名片时,由于第一次使用不够熟悉,在绘制名片时根据顺序需要先裁剪出名片的形状及边角圆; 然后再在卡片区域中绘制头像,由于头像需要裁剪一个斜角线,于是需要使用到clip()进行二次裁剪,裁剪后在安卓手机显示一切正常,但在ios端测试时

    2024年02月13日
    浏览(32)
  • 微信小程序webview跳转页面后没有返回按钮以及变向解决H5安卓无法监听popstate问题

    做了一个app跳转到小程序关注公众号的需求,小程序里面用webview嵌套公众号的H5。 做完我发现左上角它没!有!返!回!键! 然后!我查了好多资料用过双页面跳转让左上角有返回键,但是吧,它确实是有返回键了但是没办法返回到小程序 ,只是在H5内不停的返回在跳转回

    2024年04月12日
    浏览(37)
  • 微信小程序后台:解决微信扫普通链接地址无法跳转到体验版微信的问题,配置普通链接二维码规则解释和理解

    一、现象与原因 最近突然发现微信管理平台中,设置好的普通二维码连接跳转到体验版小程序的功能,没有区分体验版和生产版,全部到生产环境的小程序了。 这现象,跟我以前理解的可不一样,可能会出生产的事故,马上仔细研究了研究。 研究发现,“扫普通链接二维码

    2024年02月15日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包