微信小程序之页面打开数量限制

今天面试,面试官问到这个问题,回来查资料总结下

无论是在小程序还是APP中,打开一个页面其实就是创建了一个新的View对象,一层层叠加的。当点击页面的回退按钮就是把当前页面关闭。

这个过程中会涉及到一个问题,就是打开页面的数量。在某些设计下,比如一个商品详情页面中会推荐其他的商品,这些商品点进去就是详情页面。详情页面中又有推荐,又可以点进去。这样重复下去打开的页面就会越来越多。

如果不做限制,当打开数量到一定程度的时候肯定会卡死了。

在微信小程序中打开的页面不能超过10个,达到10个页面后,就不能再打开新的页面。

解决方案:

可以做一个提示告诉用户不能打开这么多页面,不然用户会一脸茫然,点着点着就点不了。

每个页面都会需要跟后台交互加载数据,我这边在统一的Http请求中进行判断。

var pages = getCurrentPages();

console.log("pages:" + pages.length);

if (pages.length == 10) {

  wx.showToast({

    title: "页面打开太多,请回退关闭几个页面",

    icon: 'none',

    duration: 2000

  })

  setTimeout(() => {

    wx.navigateBack({

    })

  }, 2000)

  return;

}

当打开第10个页面的时候,给出提示,然后跳回上一个页面。

原文地址:https://www.cnblogs.com/zhilu/p/13808701.html