SAP 电商云 Spartacus UI 3.4.5 版本引入的
2021-11-13 本文已影响0人
华山令狐冲
在这个版本里,我们引入了一个新的布尔类型的标志位:reuseCurrentRendering
以及一个新的 Map 数据结构:renderCallbacks
![](https://img.haomeiwen.com/i2085791/8965ff869e68f28f.png)
相当于一个观察-发布者模式的应用。如果有若干并发请求试图访问同一个 page key,则我们服务其中一个请求,将其他请求的 callback 放到 Map 的值即数组中。待被选中的请求服务结束,生成了 HTML 之后,再将 renderCallbacks 里的 callback 数组里的回调函数逐一调用。
在运行时,该 map 的数据结构和值如下图所示:
![](https://img.haomeiwen.com/i2085791/43d0aa4a2e607a63.png)
每个请求 pending 的 callback 依次被调用:
![](https://img.haomeiwen.com/i2085791/9892cc8b4d567b45.png)
测试结果:10个并发请求,有4个通过 SSR 模式接收到了响应。
![](https://img.haomeiwen.com/i2085791/5783dee23181d373.png)
更多Jerry的原创文章,尽在:"汪子熙":
![](https://img.haomeiwen.com/i2085791/97c4752c0e619c44.png)