前言
眾所周知,無論是在小程序還是APP中,打開一個頁面其實就是創建了一個新的View對象,一層層疊加的。當點擊頁面的回退按鈕就是把當前頁面關閉。
這個過程中會涉及到一個問題,就是打開頁面的數量。在某些設計下,比如一個商品詳情頁面中會推薦其他的商品,這些商品點進去就是詳情頁面。詳情頁面中又有推薦,又可以點進去。這樣重復下去打開的頁面就會越來越多。
如果不做限制,當打開數量到一定程度的時候肯定會卡死了。在微信小程序中打開的頁面不能超過10個,達到10個頁面后,就不能再打開新的頁面。
之前出現這個問題,還以為是Bug,是不是卡死了,后來發現只要回退一個頁面又可以重新打開了。才發現了最大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個頁面的時候,給出提示,然后跳回上一個頁面。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答