其他分享
首页 > 其他分享> > 关于 SAP 电商云 Spartacus UI Transfer State 冗余 API 请求发送的讨论

关于 SAP 电商云 Spartacus UI Transfer State 冗余 API 请求发送的讨论

作者:互联网

Angular 的 TransferState 类使服务器端渲染 (SSR) 和预渲染 (Prerendered-SSR) Angular 应用程序能够使用从服务器获取的数据并且有效地在浏览器中渲染。

如果您使用的是 SSR 或预渲染应用程序策略,那么该过程大致是这样的:

这个场景有两个问题:

第一个问题是目前在 Angular 中没有解决的问题,但是,第二个问题已经有了解决方案,这就是本文论述的 Angular TransferState 机制。

Transfer State 是一种策略:

从技术上讲,数据通过 JSON.stringify() 序列化并通过 JSON.parse() 解析。但是,通常我们不需要担心这一点,因为这是由 Angular 中的 TransferState 服务为我们执行的。

即使服务器在 SSR 模式下工作,在 Chrome 浏览器 network 里,仍然能观察到 CMS OCC API 的调用。

已经开启了 products 和 cms 的 ssrTransfer:

ConfigModule.withConfig({
  state: {
    ssrTransfer: {
      keys: {
        products: true,
        cms: true
      }
    }
  }
});

客户可以通过修改配置项:Spartacus config routing.loadStrategy: RouteLoadStrategy.ONCE 来更改这个行为。

以上逻辑实现于 CmsPageGuard.shouldReload 方法里。

标签:电商,浏览器,Spartacus,渲染,应用程序,SSR,API,SAP,Angular
来源: https://www.cnblogs.com/sap-jerry/p/16513165.html