最早的web如果要呈现动态网页,最早只能是ssr。服务端将数据+html渲染成一个完整的网页发送给前端。这时候,网络只是一个简单的信息展示。有一个交互式的web然后发现网站的数据展示不够用,还需要交互。交互工作交给JS完成。这个时期的服务器除了读取数据的后端代码外,还夹杂着大量的JS代码。前后端分离的web后端混杂JS代码不利于维护,前后端代码分离成为大家的呼声。(服务端做了大量的数据渲染计算,浪费了服务端资源。)前后端代码分离需要面对的问题之一就是数据通信的问题,动态数据如何从后端到前端。这时候Ajax(后来的fetch)就被提出来了。Ajax可以异步请求数据,让用户浏览网页时感觉更流畅。Ajax不仅解决了数据通信的问题,使得前后端分离(前后端并行开发)成为可能,而且增强了用户体验(异步加载)。随着SPA交互体验的极致化和各种移动终端的兴起,SPA开始崭露头角。SPA接近NativeApp,除了第一次加载慢的问题(这个要看怎么实现,也有避免第一次加载慢的解决方案)。后续操作不需要刷新整个页面,只更新部分组件。让用户感觉更快,体验更好。SPA的问题SPA会带来SEO和首次加载缓慢的问题。服务器端呈现交互式网络。此时的服务器端渲染与之前的服务器端渲染不同。以前服务端渲染只是想在网页上动态展示数据。不管web的交互性如何,实现也是由后端人员来实现的。但是目前的情况是,我们不仅需要一个交互式的web,而且这个web应用是由后台生成的。而且前后端一定要分离,不能有冗余代码。还有,这个ssr的实现是由前端人员完成的。历史的车轮仿佛又在倒转,但又是完全不同的感觉。技术就像螺旋上升。
