面试题答案
一键面试Node.js服务器端渲染(SSR)基本原理
- 服务器职责
- 初始渲染:服务器接收客户端请求,根据请求的URL,加载相应的页面模板和数据。例如,对于一个博客页面请求,服务器会找到博客页面的模板文件,并从数据库或其他数据源获取博客文章数据。
- 注入数据:将获取到的数据填充到页面模板中,生成完整的HTML字符串。比如将博客文章的标题、内容等数据填充到HTML模板的相应位置。
- 返回响应:把渲染好的HTML发送给客户端,客户端接收到的就是一个已经包含数据的完整HTML页面。
- 客户端职责
- 接收渲染后的HTML:客户端收到服务器返回的渲染好的HTML页面,直接在浏览器中呈现,此时用户可以看到页面内容。
- 激活JavaScript:随后,客户端下载并执行相关的JavaScript代码。这一步会将静态的HTML页面转化为可交互的应用程序。例如,为页面上的按钮添加点击事件等交互功能。
- 数据流动过程
- 请求阶段:客户端发起HTTP请求到服务器,请求中包含所需页面的URL信息。
- 服务器数据获取:服务器根据请求的URL,从数据库、API等数据源获取页面所需的数据。比如从数据库中查询特定博客文章的数据。
- 服务器渲染:服务器将获取到的数据与页面模板相结合,进行渲染,生成包含数据的HTML。
- 响应阶段:服务器将渲染好的HTML响应给客户端。
- 客户端交互:客户端在呈现HTML后,通过执行JavaScript代码,实现页面的交互功能,此时可能会发起新的API请求获取更多数据(如加载更多博客文章),数据从服务器再次流向客户端以更新页面。