一、SSR流程
- 流程:
- 客户端发送页面请求
- 服务端解析路由,确定需渲染的组件
- 服务端获取页面所需数据
- 服务端将数据注入组件,渲染生成完整 HTML
- 服务端返回 HTML 给客户端,浏览器快速展示静态内容
- 客户端加载 JS,执行 "注水" 过程:
- 匹配并关联服务端 DOM 与客户端虚拟 DOM,不相同则回退到重新渲染。
- 绑定事件,同步状态
- 激活页面为可交互状态
二、小程序架构
a) 架构:双线程工作。Webview是扩展了基本的webview.
好处:安全(禁止直接操作DOM),性能优化。
b) 缺点:开发约束,通信延迟(但被优化)
2. setData经过桥在两者之间通信。序列化和番序列化。
有虚拟dom的思想,但官方并未明确指出。
三、输入url到页面呈现
- Dns解析,先查缓存,没有则向DNS服务器发起请求
- 建连接 tcp
- http请求,发送,请求html
- 返回html
四、Tcp三次握手四次挥手
- 三次握手:喂听得到吗,听得到你能听得到我吗,可以听到
- 四次挥手:我们分手吧,好的我知道了,但我有话要说说完了分手吧,好的保重
五、Chat类应用技术要点
- 核心技术
- 实时通信技术:websocket, Server Sent Events (SSE), http轮询。
- 流式响应处理:分块处理、中断、UI反馈
- 界面布局:flex布局、 滚动控制,markdown支持
- 状态管理:redux pinia等
- 性能优化:虚拟滚动。Web worker 处理阻塞性任务
- 安全:防范xss,连接加密、脱敏。
2. 关于event source - 未使用http2 长连接个数有6个的限制,启用则根据协商来。
- 关于SSE中输出公式、图表:
- 分段识别与缓存。按需延迟渲染。公式渲染引擎,图标解析渲染。
4. 关于ant design/x: RICH设计范式