【发布时间】:2016-09-15 14:23:26
【问题描述】:
这个问题在网络上有很多文章在讨论它,但考虑到我对网络开发的了解有多新,我认为我错过了一些内容来全面了解。
我的理解如下:
假设我们有一个 Node.js 服务器,并且我们正在为我们的 Web 应用程序使用 express。客户端呈现是当我没有在 Web 浏览器中输入 URL 时,它会向我的服务器创建 HTTP 请求。相反,客户端请求来自 JS 脚本(最初是在我使用根路由访问应用程序时从服务器加载的,例如:http://localhost:SOME_PORT/)。所以,假设我的请求是从数据库中获取有关某个用户的一些信息。例如,JS 脚本(使用 AJAX)不通过服务器,而是直接向数据库执行 XMLHTTPRequest(比如我通过一个名为 Fetch 的按钮触发它)而不是通过我的服务器,然后客户端(浏览器)将得到响应,然后将创建一个 HTML 文档并呈现它。与服务器端渲染相反,例如,我在浏览器中输入 URL,服务器拦截请求,并准备 HTML 文档以及请求的数据(如果有),并将其以 HTML 形式发送回浏览器渲染(因此在服务器端,客户端没有做任何工作,但实际显示页面)。
这是准确的吗?我对这两种风格的理解以及何时使用这两种风格都缺少什么?
【问题讨论】:
-
我不认为你错过了什么;将整个事情减少到生成实际 HTML 代码的位置是公平的——要么已经在服务器上,要么服务器只是发送数据并让客户端将其放入 HTML。至于何时使用 which - 我会说是基于意见的。但是,如果您请求大量记录,这意味着使用服务器端渲染您将发送大量重复的 HTML ......所以在这种情况下,只发送纯数据,让客户端进行渲染可能更可取。
标签: reactjs client-side server-side web-development-server