0

我正在编写一个使用服务器端渲染的社交网站,

例如,当用户创建帖子时,用户从服务器接收到呈现的帖子 (HTML),

并将 HTML 附加到 Dom。

--

现在问题来了,

当我选择在服务器上渲染所有内容时,

我应该在哪里渲染“小东西”?

例如,如果我想在用户上传照片之前生成照片预览,

我应该在 cilent 端创建一个标签,

然后用 JavaScript 修改它,

或者只是从服务器请求预览以使您的网站“完全”服务器端呈现?

如果我选择前一种方案,我的网站将变得难以管理(因为它就像 cilent-side render 加上 server-side render ,这让我很难管理模板)

我更喜欢后一种解决方案,这样我就可以在服务器上管理我的所有模板,

但这取决于互联网速度,一旦用户离线,我就无法做任何事情,

我应该怎么办?

4

2 回答 2

2

好吧,会说你关于在哪里渲染“小东西”的问题将得到一个模糊的答案。这似乎是一个无害的问题,但答案将由更复杂的问题来回答!IMO,问这个问题比对所有事情都应用服务器更好的短视观点要好得多。

一般来说,我通过一些约束来查看每个渲染任务,所有这些约束都可能因用户而异!

- origin of content (is the information coming from the client?)
- delivering content (network infrastructure)
- viewing content (client hardware)

所以,让我们试着回答一些具体的问题:

例如,如果我想在用户上传照片之前生成照片预览,我应该在客户端创建一个标签,然后用 JavaScript 修改它,还是只是从服务器请求预览以使网站“完全”服务器端使成为?

照片是来自服务器吗?

:有服务器渲染预览

:让客户渲染它

在阅读了这篇Twitter文章的第一个视图段落之后,我得出的结论是,它们的内容最好在服务器上呈现。但进一步阅读,表明他们正在混合他们的渲染 - 一些客户端和一些服务器(复杂 - 就像你说的!)。

但是,这个结论是在他们拥有1 亿用户后8 个月得出的!因此,要务实并选择能够使您以最低复杂性构建应用程序的渲染方法。

于 2016-08-07T13:14:57.390 回答
0

几个月后,我决定坚持使用 Vue.js 进行 Cilent 端渲染(我必须重写所有内容,是的),

原因是:

  1. 更容易管理模板页面
  2. 非常适合存储离线使用的数据(因为 CSR 只获取数据,而不是整个页面)。
  3. 分离渲染工作,这样我就可以在服务器上花更少的钱
  4. 因为一切都会一直输出到浏览器
于 2016-09-24T09:15:03.177 回答