1. 程式人生 > 其它 >SAP Spartacus 伺服器端渲染單步除錯步驟之一:應用程式準備工作

SAP Spartacus 伺服器端渲染單步除錯步驟之一:應用程式準備工作

所有常規請求都用 universal engine 渲染:

Index 是靜態頁面,還得從 browser 資料夾裡的資源出發:

讀取檢視例項:

拿到的 view 例項:

根據請求例項拿到其 key:

呈現的頁面儲存在記憶體中,以便在下次請求時提供服務。 如果 cache 設定為 false,則一旦成功返回第一個成功響應,響應就會被驅逐。

OptimizedSsrEngine

預設請求的 key 就是 originalURL:/

去 cache 裡查詢這個 / 之前已經渲染過了嗎?

RenderingCache 裡維護了一個 Map:

判斷是否應該渲染當前請求:

既沒有正在渲染,也沒有到達併發上限,渲染策略不是 CSR,則 shouldRender 返回 true:

優化引擎計數器 currentConcurrency 加一。

然後檢查 shouldTimeout:如果傳入了 timeout 值,才會 timeout:

例如 timeout 為 7秒,則7秒後,執行 fallbackToCSR,那麼7秒內完成渲染呢?

在 map 裡設定一個 key 為 / 的標誌位,註明其正在渲染:

開始呼叫 expressEngine 進行渲染:

renderOptions:

渲染完了之後,輸出的 html,傳入到應用程式提供的 callback 裡:

更多Jerry的原創文章,盡在:"汪子熙":