入口:所有的 regular route 都使用 universal engine:


express 的 response 实现:

express application 的实现:

静态资源,都从 browser 目录下获取:

渲染完毕的 callback:

然后就来到 Spartacus 代码了:

得到 rendering key:/

139 行,判断请求是否被 cache 过。

如果正在渲染或者并发渲染数达到上限,则 fallback 到 CSR:


判断是否 timeout:

shouldTimeout 返回 true,必须下列任意一个条件成立:

  • this.ssrOptions === null
  • this.getRenderingStrategy(request) === RenderingStrategy.ALWAYS_SSR);

这里咋就 fallback 到 CSR 了?

原因:A value of 0 will instantly return the CSR page.

更多Jerry的原创文章,尽在:“汪子熙”:

SAP Spartacus SSR 模式下 index.html 页面的响应逻辑调试相关推荐

  1. SAP Spartacus SSR 模式下 index.html 页面渲染 fallback 到 CSR 之后的执行逻辑

    入口: 当SSR页面不能及时返回时,我们返回index.html: CSR 应用程序 CSR 应用会返回"Cache-Control: no-store"响应头.这将通知外部缓存系 ...

  2. 关于 SAP Spartacus SSR 模式和 CSR 模式下重复发送 HTTP 请求调用 OCC API 的问题

    我使用基于版本 3.4.5 的 Schematics 创建了一个店面,并在 SSR 模式下运行它. 我在浏览器中访问 http://localhost:4000/ 通过 Chrome 开发工具我知道主 ...

  3. SAP Spartacus SSR模式启用失败的一个原因:SSR rendering exceeded timeout

    https://github.com/SAP/spartacus/issues/10638 错误消息:SSR rendering exceeded timeout, fallbacking to CS ...

  4. 为什么 SAP 电商云 Spartacus UI SSR 模式下的客户端应用,不会发起 product 请求

    我们如果通过 CSR 即 Client Side Render 的方式启动 SAP Spartacus UI,可以在 Chrome 开发者工具里观测到 Product Carousel 对应的产品主数 ...

  5. 演示:思科IPS在线模式下Inline Interface Mode的响应行为(区别各个防御行为)

    演示:思科IPS在线模式下Inline Interface Mode的响应行为 演示目标:科IPS在线模式下InlineInterface Mode的响应行为. 演示环境:仍然使用图5.16所示的网络 ...

  6. awstats CGI模式下动态生成页面缓慢的改进

    本文可以看做是 多server多站点情况下awstats日志分析 这篇文章的下篇,在使用过程中发现awstats在cgi模式下动态生成分析报告慢的问题 (尤其是有些站点每天两个多G的日志,查看起来简直 ...

  7. 使用StackBlitz和SAP Spartacus快速创建电商店铺页面

    StackBlitz是一个WebIDE,可以在浏览器里使用SAP Spartacus创建电商网站. 简要步骤如下: 在package.json里手动添加Spartacus依赖,下图是添加前StackB ...

  8. MacOS深色模式下微信文章页面背景变为黑色问题的解决

    由于长期伏案,颈椎问题比较严重,所以平时都尽量减少低头看手机的时间,也就养成了用浏览器看各种读物的习惯,其中就包括公众号文章.最近不知道从哪一天开始,突然发现公众号文章的背景突然变成了黑色. 就像这样 ...

  9. 2021-10-28 SAP Spartacus SSR 性能方面的一些学习笔记

    如果客户已经拥有 CDN 缓存,可以不启用 cache:true, cacheSize:xxx . 这种内存缓存功能仅适用于没有生产就绪 CDN 的简单店面.也就是说,如果客户没有任何外部缓存服务(a ...

最新文章

  1. Python中的生产者与消费者模式(转载)
  2. 什么是JAVA语言为什么要学习JAVA
  3. linux shell 编写菜单脚本事例
  4. 【C#控件详解】对话框类控件(打开文件,保存文件,选择字体和颜色)
  5. hana数据库导入mysql_【SAP HANA】新建表以及操作数据(3)
  6. 前端学习(586):在元素中动态添加类与伪类
  7. @程序员,不要瞎努力!比起熬夜更可怕的是“熬日”!
  8. 将数据库中一张表中数据复制到另一张表
  9. 030-sysctl
  10. centos 下安装mysql-5.6.11
  11. Hyperledger Fabric教程(1)--Hyperledger Fabric 老版本 1.1.0 快速部署安装
  12. 将GRUB输出重定向到串口
  13. 软件测试bug文章,软件测试技术之说一个让你印象最深的bug?
  14. 企业竞争情报系统的业务模式深入分析
  15. 万变不离其宗之反射原理篇
  16. python 物理引擎 摩擦力_为什么单机游戏中的碰撞很不真实?物理引擎真的很难做到和现实一样吗?...
  17. 【JZOJ 省选模拟】死星(deathstar )
  18. C#计算一年有多少周
  19. thinkpadE450 进入bios并设置bios为uefi模式U盘启动(也可以是legacy)
  20. python计算线性回归方程

热门文章

  1. 织梦调用栏目、栏目内容代码
  2. MySQL源码学习——DBUG调试
  3. MySQL 4到5的快速升级
  4. 透过【百度地图API】分析双闭包问题
  5. 真机运行报错:Could not change executable permissions on the application
  6. 说说Android桌面(Launcher应用)背后的故事(九)——让我的桌面多姿多彩
  7. 分享JavaScript开发实战经验
  8. (转)SQL 查找重复记录
  9. 跟着大彬读源码 - Redis 6 - 对象和数据类型(下)
  10. electron、node