关于无页面刷新的服务端渲染(SSR)局部更新概念的困惑
你的理解偏差点
你对SSR和CSR的定义过于局限在「整页请求」和「返回格式」上了,核心判断标准应该是谁来完成数据到HTML的渲染工作,而非是否刷新整页或返回内容的格式。
博客里的「局部更新SSR」是什么意思
博客中的代码逻辑是:
- 用户点击按钮后,前端向服务端接口发起请求
- 服务端接收请求后,直接将需要新增的推文数据渲染成完整的HTML片段(比如
<div class="tweet"><p>推文内容...</p></div>这类结构) - 前端拿到该HTML片段后,直接插入到页面的
#tweets容器中,仅更新页面局部区域,无需刷新整个页面
这个过程依然属于SSR,因为把数据转换成HTML的渲染工作是在服务端完成的,只是没有触发整页刷新,而是做了局部DOM更新。
你的理解哪里有误
你认为「返回HTML就是SSR,返回JSON就是CSR」这个结论本身没错,但忽略了两个关键点:
- SSR不局限于整页渲染和整页刷新,它可以是服务端渲染局部HTML片段,前端做局部插入
- CSR的核心是客户端负责渲染(即服务端只提供原始数据,前端用JS拼接生成HTML),而非是否是局部更新
举个直观对比:
- 博客中的代码(SSR局部更新):服务端返回
<div class="tweet">...</div>,前端直接执行$('#tweets').prepend(r) - 对应的CSR局部更新:服务端返回
[{id:1, content:"新推文内容"}, ...],前端需要编写JS循环数据、创建DOM元素(或用模板引擎)生成HTML,再插入到页面中
内容的提问来源于stack exchange,提问作者Ahmad Ismail
相关产品推荐
相关产品推荐

