今天面試,面試官問到這個問題,回來查資料總結下
無論是在小程序還是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個頁面的時候,給出提示,然后跳回上一個頁面。