服务端渲染到前端渲染,再到“服务端渲染”

380 阅读2分钟

最早时期的web

如果要呈现动态网页,之前最早的时候只能ssr。 服务端把 数据+html 渲染成一个完整的web页面,发送给前端。这时候的web只是简单的信息展示。

有交互性的web

然后发现网站光是有数据的展示还不够,还需要有交互性。 交互性的工作交给了JS来完成,这时期的服务器上面除了读取数据的后端代码,还夹杂着很多JS的代码。

前后分离的web

夹杂着JS代码的后端不利于维护,前后端代码分离成为大家的心声。(服务器来做大量的数据渲染计算也浪费了服务器的资源) 而前后端代码分离需要面临的一个问题就是数据通信的问题,后端动态的数据怎么传送给前端。 这时Ajax(后来有fetch)被提出,Ajax能异步请求数据,让用户浏览网页时感觉更加平滑。Ajax不仅解决了数据通信问题,让前后端分离(前后端并行开发)成为可能,还带了用户体验上的增强(异步加载)。

SPA出现

交互体验的极致和各个移动端的兴起,SPA开始初出茅庐。 SPA接近于Native App,除了首次加载慢的问题(这个要看如何实现,也有避免首次加载慢的解决办法)。以后的操作都不需重新刷新整个页面,而是只更新部分组件。 使用户感觉更快,体验更好。

SPA带来的问题

SPA带来了SEO和首次加载过慢的问题。

服务端来渲染交互性强的web。

这时的服务端渲染已经不同于以往的服务端渲染了。 以往的服务端渲染只是想把数据动态的展示到网页上。而不考虑web的交互性,实现也是由后端人员实现的。 但是现在的情况是,我们不仅需要一个具有交互性的web,而且这个web应用是由后端生成好的。 并且还必须前后端分离,不能有代码冗杂。还有,这种ssr 的实现是由前端人员来完成的。

历史的车轮感觉又转回去了,但是意义完全不一样。
技术就像是螺旋上升的。