关于|关于 SAP Spartacus CSR fallback 之后,是否仍然会继续进行 SSR 的处理
来自 nguniversal 的 express engine 渲染完了后,渲染完毕的 HTML 源代码保存在 150 行代码 html 里,callback 就是 Spartacus 团队开发的 ssr optimization engine 的实现:
文章图片
回调执行时,maxRenderTimeout 不为空,说明 maxRenderTime 驱动的 setTimeout 尚未执行,这说明 maxRenderTime 超时没有发生,因此不会执行到第 170 行。
文章图片
文章图片
先调用 callback 把 html 返回给请求端:
文章图片
再保存到 cache 里:
文章图片
下面测试直到 timeout 时间到达,仍未开始 render,fallback 到 CSR 之后,是否还会在后台将 SSR 执行完毕。
让断点停在这里,等待 timeout 即 90秒,一分半钟。
文章图片
去做了一会家务回来,F8,果然 CSR fallback 了:
文章图片
也看到了对应的 log:SSR rendering exceeded timeout 90000, fallbacking to CSR for /
文章图片
如果此时 maxRenderTimeout 时间也到达了,那么会执行上图绿色高亮代码,将 maxRenderTimeout 清空,然后我们指定的 callback 会被调用到。
文章图片
注意,在上图的上下文里,SSR 已经成功完成了,只是因为 maxRenderTimeout 已经到达,因此渲染好的 HTML 被丢弃。如果 timeout 到达但是 maxRenderTimeout 没有到达,则渲染好的 HTML 会进一步得到处理。
【关于|关于 SAP Spartacus CSR fallback 之后,是否仍然会继续进行 SSR 的处理】更多Jerry的原创文章,尽在:"汪子熙":
文章图片
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 四首关于旅行记忆的外文歌曲
- 醒不来的梦
- 关于自我为中心的一点感想
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 关于Ruby的杂想
- 关于读书的思考
- 关于this的一些问题(1)
- 《声之形》
- 关于如何沟通的1/2/3