当我决定在服务器端渲染时,是否应该在服务器上渲染所有内容?
Should I render everything at the server when I decided to Server-side render?
我正在编写一个使用服务器端渲染的社交网站,
例如,当用户创建 post、
时,用户从服务器收到呈现的 post (HTML)
并将 HTML 附加到 Dom。
--
问题来了,
当我选择在服务器上渲染所有内容时,
我应该在哪里渲染 "small things"?
例如,如果我想在用户上传照片之前生成照片预览,
我是否应该在客户端创建一个标签,
然后修改为JavaScript,
或者只是请求服务器预览来制作网站 "fully" 服务器端渲染?
如果我选择前一种方案,我的网站将变得难以管理(因为它就像cilent-side render 加上 server-side render ,这让我难以管理模板)
我更喜欢后一种解决方案,这样我就可以在服务器上管理我的所有模板,
但是要看网速,一旦用户下线我就什么也做不了了,
我该怎么办?
好吧,如果您提出有关渲染位置的问题 "small things",那么您将得到一个模糊的答案。这似乎是一个无关紧要的问题,但答案将由更复杂的问题来回答! IMO,问这个问题比对所有东西应用服务器更好myopic view要好得多。
一般来说,我通过一些约束来查看每个渲染任务所有这些都可能因用户而异!!:
- origin of content (is the information coming from the client?)
- delivering content (network infrastructure)
- viewing content (client hardware)
所以,让我们试着回答一些具体的问题:
For example, if I want to generate a photo preview before user upload a photo,
should I create a tag at the cilent side, then modify it with JavaScript,
or just request the preview from the server to make y website "fully" server side render?
照片是否来自服务器?
是: 有服务器渲染预览
否:让客户端渲染它
阅读这篇 Twitter 文章的第一段后,我得出结论,他们的内容最好在服务器上呈现。但进一步阅读表明,它们正在混合它们的渲染 - 一些客户端和一些服务器(复杂 - 就像你说的!)。
但是,我们得出了这个结论 8 MONTHS after they had 100 million users! So, be pragmatic 并选择了能够让您以最少的复杂性构建应用程序的呈现方法。
几个月后,我决定坚持使用 Vue.js 的 Cilent 端渲染(我必须重写所有内容,是的),
原因是:
- 更容易管理模板、页面。
- 非常适合存储数据以供 离线使用(因为 CSR 只获取数据,而不是整个页面)。
- 分离渲染工作,这样我就可以在我的服务器上花更少的钱。
- 因为一切都会总是输出到浏览器。
我正在编写一个使用服务器端渲染的社交网站,
例如,当用户创建 post、
时,用户从服务器收到呈现的 post (HTML)并将 HTML 附加到 Dom。
--
问题来了,
当我选择在服务器上渲染所有内容时,
我应该在哪里渲染 "small things"?
例如,如果我想在用户上传照片之前生成照片预览,
我是否应该在客户端创建一个标签,
然后修改为JavaScript,
或者只是请求服务器预览来制作网站 "fully" 服务器端渲染?
如果我选择前一种方案,我的网站将变得难以管理(因为它就像cilent-side render 加上 server-side render ,这让我难以管理模板)
我更喜欢后一种解决方案,这样我就可以在服务器上管理我的所有模板,
但是要看网速,一旦用户下线我就什么也做不了了,
我该怎么办?
好吧,如果您提出有关渲染位置的问题 "small things",那么您将得到一个模糊的答案。这似乎是一个无关紧要的问题,但答案将由更复杂的问题来回答! IMO,问这个问题比对所有东西应用服务器更好myopic view要好得多。
一般来说,我通过一些约束来查看每个渲染任务所有这些都可能因用户而异!!:
- origin of content (is the information coming from the client?)
- delivering content (network infrastructure)
- viewing content (client hardware)
所以,让我们试着回答一些具体的问题:
For example, if I want to generate a photo preview before user upload a photo, should I create a tag at the cilent side, then modify it with JavaScript, or just request the preview from the server to make y website "fully" server side render?
照片是否来自服务器?
是: 有服务器渲染预览
否:让客户端渲染它
阅读这篇 Twitter 文章的第一段后,我得出结论,他们的内容最好在服务器上呈现。但进一步阅读表明,它们正在混合它们的渲染 - 一些客户端和一些服务器(复杂 - 就像你说的!)。
但是,我们得出了这个结论 8 MONTHS after they had 100 million users! So, be pragmatic 并选择了能够让您以最少的复杂性构建应用程序的呈现方法。
几个月后,我决定坚持使用 Vue.js 的 Cilent 端渲染(我必须重写所有内容,是的),
原因是:
- 更容易管理模板、页面。
- 非常适合存储数据以供 离线使用(因为 CSR 只获取数据,而不是整个页面)。
- 分离渲染工作,这样我就可以在我的服务器上花更少的钱。
- 因为一切都会总是输出到浏览器。