为什么说前后端分离不利于seo的原因如下:
seo 本质是一个服务器向另一个服务器发起请求,解析请求内容。但一般来说搜索引擎是不回去执行请求到的js的。也就是说,如果一个单页应用,html在服务器端还没有渲染部分数据数据,在浏览器才渲染出数据,而搜索引擎请求到的html是没有渲染数据的。 这样就很不利于内容被搜索引擎搜索到。 所以服务端渲染就是尽量在服务器发送到浏览器前 页面上就是有数据的。
第二个问题,一般的数据逻辑操作是放在后端的。排序这个如果仅仅是几条数据,前后端排序开起来是一样的,如果是有1000条数据,前端要排序就要都请求过来。这样显然是不合理的。
php渲染叫做后端渲染(后端渲染不一定是php),ajax渲染叫做前端渲染(前端渲染也不一定是ajax)。做后端的肯定会说后端渲染好,做前端的肯定会说前端渲染好,大家都是为了体现自己的价值。但凡事无绝对,应该根据适当的应用场景来决定渲染方式。
如果对SEO比较重视,则应当以后端渲染为主,因为搜索引擎是无法获取动态数据的。前端渲染的好处对于用户来说是在操作数据的时候提升用户体验,对开发者来说则是在团队开发中可以做到前后端分离。但前端渲染需要多次调用接口来获取或操作数据,这样就增加了服务器并发和网络负担。
所以,一般来说,以展示为主或单一数据操作的,适合用后端渲染。以大量动态数据操作为主的,适合前端渲染。首屏最好后端渲染,动态数据变化前端渲染。
1 一开始,html 就是后端渲染的。不过后端发现页面中的 js 好麻烦(虽然简单,但是坑多),于是让公司招聘专门写 js 的人,也就是前端
2 前端名义上是程序员,实际上就是在切图(CSS)和做特效(JS),所以所有程序员中前端工资最低,职位也最低。所以前后端的鄙视链就出现了
3 nodejs 和前端 mvc 的兴起让前端变得复杂起来,前端发现翻身的机会,于是全力支持这两种技术,造成本不该做成 spa 的网站也成了 spa。慢慢地前后端分离运动从大公司开始兴起,目的就是前端脱离后端的指指点点,独立发展。(表面上是为了「代码分离」,实际上是为了「人员分离」,也就是「前后端分家」,前端不再附属于后端团队)
4 spa 之后发现 seo 问题很大,而且首屏渲染速度贼慢,但是自己选的路再难走也要走下去,于是用 nodejs 在服务端渲染这一条路被看成是一条出路
5 其实这是第二个翻身的机会,如果 nodejs 服务器渲染成为主流,其实就相当于前端把后端的大部分工作给抢了,工资压过普通后端指日可待
6 然而结果是 nodejs 服务端渲染始终是小众,因为后端也没那么脆弱,java php rails 十多年沉淀的技术岂是你说推翻就推翻的,已经运行多年的项目又岂是容你随便用 nodejs 重写的,另一方面 golang 等技术的兴起也给 nodejs 不少压力。最终只有少部分前端特别强势的团队成功用上了 Node.js 做渲染(比如阿里的一些团队),大部分公司依然是用 PHP 渲染 HTML。
7 于是 nodejs 退一步说好好好我不抢你们的工作,我只做中间层(大部分工作就是渲染页面和调用后台接口),绝不越雷池。后端说算你识相。现在 nodejs 主要搞什么微服务,也是为了抢后端还没注意的市场。
你要看一门技术的发展主要应该看背后的人是谁,应用场景是哪些,最后才是技术细节。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)