渲染 页面上的数据要发生更新
服务端渲染 后台语言通过一些模板引擎生成html
好处:前端耗时少(前端只负责将html进行展示),利于SEO
坏处:网络传输数据量大,占用(部分、少部分)服务器运算资源,response 出的数据量会(稍)大点,模板改了前端的交互和样式什么的一样得跟着联动修改
客户端渲染 js生成html 前端作路由
好处:网络传输数据量小(减少了服务器压力)
坏处:前端耗时较多,不利于SEO
SEO
browser端渲染是对搜索引擎不太友好的,虽然SPA怎么做SEO已经有过无数讨论和实践,但是browser端很大程度是不如server端渲染容易做SEO。
后端渲染html 叫吐或者喷,爬虫可以看到完整的呈现源码
前端模板渲染html叫填,爬虫看不到完整的呈现源码
维护
server端渲染很多时候前后端是一起完成的。有的团队是前端开发人员直接写模板文件,但是也有的团队是前端写了静态html文件,后端改为模板。后一种团队在维护时是比较蛋疼的,改个css都要前后端在一起搞定(我的上一家公司就是这么做的)
如何选择
关于在server端还是在browser端渲染的选择,更多的是要看业务场景。
例如一个注重SEO的新闻站点,非强交互的页面,做成SPA意义并不大,还是建议server端渲染。
像后台管理页面,或者是QQ空间这类强交互的网页应用,可以尝试浏览器端渲染。后端开发人员也能更加专注于接口服务的提供,不用去考虑页面的渲染问题,分工合作更加愉快。