天天看点

SAP 电商云 Spartacus UI 3.4.5 版本引入的对并发 SSR 请求的支持

在这个版本里,我们引入了一个新的布尔类型的标志位:reuseCurrentRendering

以及一个新的 Map 数据结构:renderCallbacks

SAP 电商云 Spartacus UI 3.4.5 版本引入的对并发 SSR 请求的支持

相当于一个观察-发布者模式的应用。如果有若干并发请求试图访问同一个 page key,则我们服务其中一个请求,将其他请求的 callback 放到 Map 的值即数组中。待被选中的请求服务结束,生成了 HTML 之后,再将 renderCallbacks 里的 callback 数组里的回调函数逐一调用。

在运行时,该 map 的数据结构和值如下图所示:

SAP 电商云 Spartacus UI 3.4.5 版本引入的对并发 SSR 请求的支持

每个请求 pending 的 callback 依次被调用:

SAP 电商云 Spartacus UI 3.4.5 版本引入的对并发 SSR 请求的支持

测试结果:10个并发请求,有4个通过 SSR 模式接收到了响应。

SAP 电商云 Spartacus UI 3.4.5 版本引入的对并发 SSR 请求的支持

继续阅读