当我决定服务器端渲染时,我应该在服务器上渲染所有内容吗?

时间:2016-08-07 11:25:54

标签: php render serverside-rendering

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

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

并将HTML附加到Dom。

-

现在出现了问题,

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

我应该在哪里呈现"小事"?

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

我应该在Cilent侧创建一个标签,

然后用JavaScript修改它,

或者只是从服务器请求预览以制作y网站"完全"服务器端渲染?

如果我选择以前的解决方案,我的网站将变得难以管理(因为它类似于静音端渲染和服务器端渲染,这使我难以管理模板)

我使用后一种解决方案,因此我可以在服务器上管理所有模板,

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

我该怎么办?

2 个答案:

答案 0 :(得分:2)

好吧,会说你的问题是关于在哪里渲染"小事情"将以模糊的答案回答。这似乎是一个无害的问题,但答案将由更复杂的问题回答! IMO, 提出这个问题 要比将服务器更好myopic view应用于所有内容要好得多。

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

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

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

  

例如,如果我想在用户上传照片之前生成照片预览,   我应该在cilent端创建一个标签,然后用JavaScript修改它,   或者只是从服务器请求预览来制作y网站"完全"服务器端渲染?

照片是否来自服务器?

:拥有服务器渲染预览

:让客户端呈现

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

但是,在 1亿用户 之后,我得出了8 MONTHS的结论!因此,请pragmatic并选择使您能够以最低复杂性构建应用程序的呈现方法。

答案 1 :(得分:0)

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

原因是:

  1. 更轻松管理模板页面
  2. 非常适合存储离线使用的数据(因为CSR只获取数据,而不是整页)。
  3. 分离渲染工作,这样我就可以在我的服务器上花更少的钱
  4. 因为所有内容都始终输出到浏览器