2017-04-07 43 views
0

如果我移動到新頁面,可以保存頁面狀態嗎?如何緩存頁面使用離子2?

我在地圖上有一張地圖和一些對象。我想如果地圖加載,所有狀態保存,如果我移動新頁面,然後我回來。這是高負載的過程(再次加載圖像)。使用lealetjs

謝謝!

+0

對於多視圖的數據,我會使用一些服務的事情來存儲和管理共享數據如果你擔心的是圖像將被重新加載,也許一些緩存他們的解決方案將有助於這裏。即https://github.com/zyramedia/ionic-image-loader –

+0

我認爲在離子2,在一組導航堆棧上推送的頁面的頁面狀態(即,直到您再次將根設置爲另一個組件)已經被保存。而且,在資源情況下,如果資源從相同的來源,也就是一個圖像,被緩存起來,但它可能不會在各個會話中維護,您可以切換從瀏覽器中輸出=> Inspect =>來源和網絡標籤。 –

+0

@AdamSzmyd,是的,我使用服務,但如果我在頁面之前移動,並再次映射頁面 - 地圖不初始化(如果我沒有調用初始化函數)。 但是,如果我沒有使用後退按鈕,但移動了下一頁和頁面之前 - 一切都好!現在我會照顧一切(我會嘗試改變後退按鈕的操作)。對於答案和鏈接 - 謝謝! – Alex

回答

0

我解決我的問題如下:

我更改應用程序體系結構 - 我想補充兩個選項卡(列表元素頁面以及包含標記映射)。當我打開地圖頁面使用標籤 - 頁面加載,它是好的!

工作離子的說明: 如果您使用navCtrl.pop() - 當前頁面將從內存中刪除。但是,如果你不能使用標籤 - 在頁面之前使用新的navCtrl.push()。當用戶希望返回頁面之前 - navCtrl.pop() - 刪除當前頁面,但頁面將被緩存。 也就是說,從用戶的角度來看 - 它已經回到上一頁,從程序員的角度來看 - 正在創建一個新的相同頁面。

如果用戶想要頁面之前移動到在─>,使用所需的頁面navCtrl.popTo(指數 - 您可以使用this.navCtrl.popTo(this.navCtrl.getByIndex([yourPageNumber]));