2016-08-07 70 views
0

我写它使用服务器端渲染社交网站,当我决定进行服务器端渲染时,我应该渲染服务器上的所有内容吗?

例如,用户收到当用户创建一个职位的服务器渲染后(HTML),

和HTML追加到DOM 。

-

现在,这里是问题,

当我选择呈现在服务器上的一切,

我应该在哪里呈现“小东西”?

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

我应该建立在cilent一侧的标签,

然后用JavaScript修改,

或只是请求从服务器预览使y网站“完全”服务器端渲染?

如果我选择了前者的解决方案,我的网站将变得难以管理(因为它像cilent端渲染加上服务器端渲染,这让我很难管理模板)

我perfer后者的解决方案这样我就可以在服务器上管理所有的我的模板,

,但是这取决于网络的速度,一旦用户离线我不能做任何事情,

我该怎么办?

回答

1

那么,会说你的问题是关于在哪里渲染“小东西”,会得到一个模糊的答案。这可能看起来像一个无害的问题,但答案将由更复杂的问题来回应!国际海事组织,这是好得多问这个问题,比应用服务器是更好的myopic view的一切。

一般来说,我通过一些约束来查看每个渲染任务所有这些都可以由用户显着变化!

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

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

例如,如果我要生成用户之前查看照片预览上传照片, 我应该在创建标签无声的一面,然后用JavaScript修改它, 或只是从服务器请求预览使y网站“完全”服务器端渲染?

照片是来自服务器?

:有服务器渲染预览

没有:已在客户端使其

阅读本Twitter ariticle的第一种观点的段落后,我得出的结论,他们的内容会在服务器上呈现最佳效果。但进一步阅读,表明它们是杂交他们的渲染 - 一些客户端和一些服务器(复杂 - 就像你说的!)。

但是,这个结论作出8 MONTHS他们1亿用户后!因此,请选择pragmatic并选择渲染方法,使您能够以最小的复杂性构建应用程序。

0

几个月后,我决定用Cilent方坚持Vue.js渲染(我不得不重写一切,耶),

的原因是:

  1. 更容易管理模板,页面
  2. 非常适合存储离线使用的数据(因为CSR仅获取数据,而不是整个页面)。
  3. 分开渲染工作,所以我可以花费更少的钱在我的服务器
  4. 因为一切都会总是输出到浏览器