單一頁面應用 Single Page Application
Liferay 7已經完全支援單一頁面應用(Single Page Application, SPA)、單頁應用,成為新增的平台特點。
SPA引擎 Senna.js
Liferay使用Senna.js 作為SPA引擎,專門處理使用者端的資料,動態傳輸頁面內容,增強使用者體驗。
Senna.js是一套輕量級引擎,可將靜態站台轉變成快速回應的應用程式,不須加入額外架構,使用Senna.js提供SPA許多特點:
- SEO與書籤可用性:直接分享使用者看到頁面的網址可看相同的頁面內容,搜尋引擎可直接為此頁面內容建置索引。
- 多元呈現:Ajax配合伺服器端的內容呈現,可停用pushState,讓系統使用更多方式組合出頁面內容,如HTML片段與版型檢視的應用。
- 狀態保留:可配合Scroll拖拉、載入、瀏覽等操作紀錄,很快抵達內容位置。
- UI回應:UI告知使用者有請求發生時。
- 暫停瀏覽:UI呈現會暫停,直到必要內容完全載入。
- Timeout偵測:當請求過久,或者使用者又發出其他請求,請求會被timeout。
- 歷史瀏覽:瀏覽器JS可用History API控制頁面歷史。
- 可快取螢幕:一旦某個畫面被載入,則會在記憶體中Cache儲存,加快速度。
- 頁面資源管理:SPA引擎會視情況動態處理內容中的<script>段落,確保滿足瀏覽器載入需求。
在Liferay在系統管理上提供一系列相關SPA設定,讓管理者決定SPA參數、效能配置。