nguniversal的express引擎渲染后,渲染后的HTML源码保存在150行代码html中,回调是Spartacus自研的ssr优化引擎teamImplementation:callback执行时,maxRenderTimeout不为空,说明maxRenderTime驱动的setTimeout还没有执行,也就是说maxRenderTime超时没有发生,所以直到170行才执行。先调用callback将html返回给请求者:然后保存在缓存中:下一次测试直到超时时间到了,render还没有开始,fallback到CSR后,SSR是否还会在后台执行。让断点停在这里,等待90秒一分半钟的超时。做了一会家务,按了F8,果然CSR回退:我也看到了对应的日志:SSR渲染超过超时90000,回退到CSR为/如果此时也达到了maxRenderTimeout时间,那么上图中绿色高亮会执行代码,清除maxRenderTimeout,然后会调用我们指定的回调。请注意,在上图的上下文中,SSR已成功完成,只是因为已达到maxRenderTimeout,所以渲染的HTML被丢弃。如果达到超时但未达到maxRenderTimeout,则将进一步处理呈现的HTML。更多Jerry原创文章在这里:《王子熙》:
