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的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP Spartacus 服务器端渲染单步调试步骤之一:应用程序准备工作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解BLE空口包格式—兼BLE Link
- 下一篇: SAP Spartacus 服务器端渲染