我正在编写一个使用服务器端渲染的社交网站
例如,当用户创建帖子时,用户从服务器收到了呈现的帖子(HTML),
并将HTML附加到Dom。
-
现在出现了问题,
当我选择在服务器上渲染所有内容时,
我应该在哪里呈现"小事"?
例如,如果我想在用户上传照片之前生成照片预览,
我应该在Cilent侧创建一个标签,
然后用JavaScript修改它,
或者只是从服务器请求预览以制作y网站"完全"服务器端渲染?
如果我选择以前的解决方案,我的网站将变得难以管理(因为它类似于静音端渲染和服务器端渲染,这使我难以管理模板)
我使用后一种解决方案,因此我可以在服务器上管理所有模板,
但这取决于互联网的速度,一旦用户离线,我就无法做任何事情,
我该怎么办?
答案 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渲染(我必须重写所有内容,但是),
原因是: