渲染页面的流程 #145
cfdxkk
started this conversation in
Show and tell
渲染页面的流程
#145
Replies: 2 comments
-
更新: sequenceDiagram
actor User
participant Nuxt Client
participant Nuxt Server
participant API
User->>Nuxt Server: 携带 cookie 拉取首屏 SSR
rect rgba(191, 223, 255, 0.4)
note right of Nuxt Server: 路由中间件:服务端
Nuxt Server->>Nuxt Server: 检查 cookie 中是否有用户信息
alt 如果 cookie 中有用户信息
Nuxt Server->>API: 通过用户信息请求用户设置
activate API
API-->>Nuxt Server: 返回用户设置
deactivate API
else 如果 cookie 中没有用户信息
Nuxt Server->>Nuxt Server: 尽可能将 cookie 中残留的用户(离线)设置<br />存储到 Pinia
end
Nuxt Server->>Nuxt Server: 将用户设置添加到响应头的 set-cookie 中
end
Nuxt Server->>API: 请求其他资源
activate API
API-->>Nuxt Server: 返回请求资源
deactivate API
Nuxt Server-->>Nuxt Client: 将 DOM 和带有 set-cookie 响应<br />头的响应返回给客户端
Nuxt Client->>Nuxt Client: set-cookie 响应头更新客户端 cookie
Nuxt Client->>Nuxt Client: 水合阶段,使用静态脚本将 cookie 中<br />的用户设置添加到 DOM 根节点
Nuxt Client--)User: 呈现页面
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
渲染页面的流程图
首屏 SSR 时:
非 SSR 时
用户登录时
更新设置
比较复杂,可能看不太懂,因为要解决三个问题:
① 用户即使没有登录也可以离线自定义样式并保留在当前设备上
② 已登录用户的自定义样式多设备同步(不要求即时同步)
③ (尽可能)无 FOUC
看不懂的话找时间开个会吧
Beta Was this translation helpful? Give feedback.
All reactions