單一頁面應用 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 參數、效能配置。