2017-07-16

Ionic3 Lazy Load Page 的問題

今天是 7/16/2017

Ionic 3 的程式愈寫愈多,愈來愈複雜。
本來為了加快程式的載入速度,所以所有 Page 很早就全用 Lazy Load ,直至愈後面,Page 愈寫愈深,因此造成了一些問題要用很怪的手段解決,使用 Ionic 3.5.3 依舊一樣。

本來官方app-script 預設 generate page 是 Lazy Module,現在看到官方 app-script 改成預設為一般 Page, 故勸各位 Ionicer 還是依照官方的方式,用一般 Page。 待官方 ionic g page XXXPage 改為有 XXX.module.ts 的時候再用 Lazy Load Page


目前我發現的問題有:


1. Pipes : 

可能會造成無法找到你建立的 pipe - 用 pipe module 解決,但依舊會有怪問題產生

2. Deep Link:

步驟愈寫愈深,深度 page 會有 this.app.getRootNav() 為 null 現象
 以下 getActiveNav 時 _appRoot 為 null
App.prototype.getActiveNav = function () { var /** @type {?} / portal = this._appRoot._getPortal(__WEBPACK_IMPORTED_MODULE_2__app_co‌​nstants__["b" / PORTAL_MODAL */]); if (portal.length() > 0) { return findTopNav(portal); } return findTopNav(this._rootNav || null); };


3. Cannot read property '_getPortal' of undefined
在 Lazy Page 上單純的 present 一個 alert 或 modal 就會產生 no root page, 沒 root page 內建 method 用到 getPortal 就會出錯。 主要也是由於 Root Nav Controller 無法找到  lazy page 造成。
亂修改 page 順序可解決,但非好方法

4. Ion-icon Auto Select 失效

深度 lazy page 會造成 ion-icon auto selection 失效
<ion-icon name="add-circle"></ion-icon>
只能指定使用
<ion-icon ios="ios-add-circle" md="md-add-circle"></ion-icon>
但是回復成 normal page 則問題消失
預估是 page fail, 造成 paltform 也沒有執行到。純粹預想的,沒 debug in

<ion-icon name="add-circle"></ion-icon> <--- 無法顯示
<ion-icon name="ios-add-circle"></ion-icon> <--- 指定圖片才能顯示

故暫時均先回復成原先的 normal load page,直至官方預設為 Lazy Page 再來跟進,會節省很多不必要的時間浪費!除非是很單純的 Page, 例如:About Page, Q&A, Privacy....等










2 則留言:

  1. 網誌管理員已經移除這則留言。

    回覆刪除
  2. Emperor Casino - Shootercasino
    Emperor Casino is your new online casino of choice for the chance to win 메리트 카지노 real money. septcasino With a 제왕카지노 unique game and a fantastic Welcome Bonus, you're sure to find something

    回覆刪除