“服务器渲染”和在服务器中生成 HTML 的字符串有什么区别?

What is the difference between “server-rendering” and generating strings of HTML in the server?

当像 React 这样的库谈论 "server-rendering" 时,我可以简单地理解为它从 DOM 元素的表示中生成 HTML 的字符串,这样当浏览器发送 XMLHttpRequest 时服务器 returns 一个 HTML 的字符串(而不是编码某个 JSON 对象的字符串),我们可以将其附加到页面的一部分吗?还是 "server-rendering" 做的不仅仅是简单地生成 HTML 的字符串?

我对术语 渲染 的理解是在屏幕上画线。所以我无法理解 "server rendering".

的本质

假设我有一个包含静态内容(例如博客)的网站,页面渲染性能方面,在节点服务器的后端使用像 React 这样的工具是否有任何优势 "server-rendering" 而不是静态服务器(使用像 Jekyll 这样的静态站点生成器)?

服务器渲染在服务器上生成整个页面。

这用于:

  • 即使 JavaScript 失败
  • ,网站也能正常工作
  • 第一次在会话中请求页面时,会加载完整、正确的页面(与加载主页然后使用 JavaScript 进行编辑相反,这会导致性能损失,因为额外的 HTTP 请求是必要的)。

Suppose I have a website with static content (e.g. a blog), page-rendering-performance-wise, is there any advantage in using tools like React in the back-end on a node server for "server-rendering" instead of having a static server (using a static-site generator like Jekyll)?

没有。 React 风格的服务器渲染是作为大规模 ajaxified SPA 的备份。它可以解决 not 使用简单静态页面的缺点。