zoukankan      html  css  js  c++  java
  • SAP Spartacus 服务器端渲染单步调试步骤之一:应用程序准备工作

    所有常规请求都用 universal engine 渲染:

    Index 是静态页面,还得从 browser 文件夹里的资源出发:

    读取视图实例:

    拿到的 view 实例:

    根据请求实例拿到其 key:

    呈现的页面保存在内存中,以便在下次请求时提供服务。 如果 cache 设置为 false,则一旦成功返回第一个成功响应,响应就会被驱逐。

    OptimizedSsrEngine

    默认请求的 key 就是 originalURL:/

    去 cache 里查找这个 / 之前已经渲染过了吗?

    RenderingCache 里维护了一个 Map:

    判断是否应该渲染当前请求:

    既没有正在渲染,也没有到达并发上限,渲染策略不是 CSR,则 shouldRender 返回 true:

    优化引擎计数器 currentConcurrency 加一。

    然后检查 shouldTimeout:如果传入了 timeout 值,才会 timeout:

    例如 timeout 为 7秒,则7秒后,执行 fallbackToCSR,那么7秒内完成渲染呢?

    在 map 里设置一个 key 为 / 的标志位,注明其正在渲染:

    开始调用 expressEngine 进行渲染:

    renderOptions:

    渲染完了之后,输出的 html,传入到应用程序提供的 callback 里:

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

  • 相关阅读:
    sping AOP核心思想及实现原理
    springmvc RequestMappingHandlerMapping初始化详解
    springmvc RequestMappingHandlerAdapter初始化详解
    POJ 3169 Layout
    POJ 3264
    POJ 3461 Oulipo
    二分图判定 POJ-2492
    最小生成树 prim算法
    初级BFS
    哈夫曼建树
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/15175522.html
Copyright © 2011-2022 走看看