1、前后端分离为什么不利于网站的SEO
seo 本质是一个服务器向另一个服务器发起请求,解析请求内容。但一般来说搜索引擎是不回去执行请求到的js的。也就是说,如果一个单页应用,html在服务器端还没有渲染部分数据数据,在浏览器才渲染出数据,而搜索引擎请求到的html是没有渲染数据的。 这样就很不利于内容被搜索引擎搜索到。 所以服务端渲染就是尽量在服务器发送到浏览器前 页面上就是有数据的。
第二个问题,一般的数据逻辑操作是放在后端的。排序这个如果仅仅是几条数据,前后端排序开起来是一样的,如果是有1000条数据,前端要排序就要都请求过来。这样显然是不合理的。
2、网站前后台分离后对seo有影响吗
网站前后台分离,通常对SEO是没有影响的。
没有影响主要是有以下原因:
从SEO的定义来看,SEO是通过站内优化主要包括(网站结构的调整、网站内容的建设、网站代码的优化等)和站外优化主要包括(网站站外推广以及网站品牌建设等)从而使网站满足搜索引擎收录排名需求进而提高关键词排名,最终达到品牌推广以及网站获得免费流量的目的。从SEO的定义中不难发现,网站SEO的整个过程中网站后台并没有发挥很大的作用,他也不参与网站排名的。
明确网站前台与后台具体是干什么的,前台顾名思义是展现给用户的;SEO人员在做网站优化时的各种操作都是在网站后台进行的,换句话说说网站后台是前台的支撑,但是他对SEO并没有太大的影响。
网站前后台分离需要注意以下两点:
为了便于网站前台能够正常打开网站后台服务器一定要稳定;
为了SEO的最终目的,网站后台该有的文件例如:网站地图、robots文件等,都不能缺少。
3、前后端分离,怎么做SEO优化
可以利用现在的前端框架做同构支持(目前热门的前端框架都支持同构)。在初次网址访问时由服务器渲染页面内容,Client端资源做CDN,这样就可以支持SEO优化了。
如果使用的是angularjs的话,可以看看Prerender - AngularJS SEO, BackboneJS SEO, or EmberJS SEO
4、web为什么要前后端分离?优点是什么?
解耦,降低耦合度,而且前后端分离可以提升一些后端的开发效率。
5、现在开发网站一般都使用什么方式?什么是前后端分离
对于前后端分离,认识上有个误区,那就是很多人自称:我们老早就分离了,全AJAX,使用Angular或者什么什么就可以了。
这个说法是不合适的,打个比方,别人问的是“如何解决家禽把蛋生在水草边的问题?”,但实际上人家养的是鸭子,答题的却是养鸡的,所以回答“不让去水边就行了”,这显然不在点子上。
这
两年业界说的前后端分离,是限于偏展示类的系统(用A代替),而不是应用、管控类Web项目(用B代替),在B类项目里,前后端是天然分离的,对此,除了
少部分后端开发人员,基本所有人的认识都是一致的。上一段中这样回答的人一般都是只做B类项目,在B类项目里,前后端分离是共识,不需要讨论。
那么,剩下的问题就是讨论A类项目的前后端分离了。这个问题的核心在什么地方呢,在于模板的与数据结合的位置,以及,模板的控制权在谁手里。经过这两年的讨论,基本上我们可以达成的共识就是:模板应当由前端人员去控制,主要原因有两方面:
- 性能优化(尤其是外部资源的管理与发布,请求合并等等)
- 协作的顺畅性(已形成模板的界面片段的返工等问题)
那么,模板到底应该在什么地方跟数据结合?
这个问题就比较折腾了,有部分人尝试像B类项目那样,使用js模板,然后在浏览器端执行,这是存在一些问题的,比如说seo不友好,首屏性能不够,尤其对于首页DOM量很大的电商类网站,差距很明显。
所
以我们还是得把主要的模板放在服务端来执行。在这个过程中,阿里作了一些尝试,那就是引入Node层,在这一层把模板与数据进行合成,然后浏览器拿到的就
是生成好的HTML了,但也不是所有HTML都是这么生成好的,还是会有一些内容等到了浏览器之后,再用js去加载和生成。
所以这一定会是一个混合方案,同一个系统中存在两种模板,一种在服务端执行,一种在浏览器中执行,互为补充。
至
于说这个方案中,是否中间层一定要是node,我觉得无所谓,只要是能正常做web项目的东西都可以,这个还是要看所在企业的技术积累方向,当然node
做这块是有一些优势的,比如对前端人员的语言友好性,前后端模板的通用性等等,但这些都是细节,重点还是整体方案和流程。
这时候回头看你问题中的这句:
> 前后端分离的意思是,前后端只通过 JSON 来交流,组件化、工程化不需要依赖后端去实现。
我相信你这里对前后端的限定是以浏览器为准的,但事实上,A类项目中,前后端的分界一定要延伸到服务器端的模板层,也就是在这一层里,把各种来源的数据整合到模板中,这个数据未必是JSON格式的,会存在有JSON,XML,特定的二进制等等。
组
件化这个话题就更复杂了,在刚才组织形式中,很难说出究竟什么才是组件。是某个商品的模板吗?是数据吗?是数据和模板的结合体吗?没法回答。在此,我说一
句自己的看法:像电商这种项目的前端部分,基本不存在组件的概念,甚至不存在组件化的价值,因为这里面可复用的东西太少了,也不易提取,大多数东西都是不
带逻辑的界面模板。
最近因为ReactJS的流行,带来了一个Isomorphic的概念,这是一种很有意义的探索,但是否能解决这类问
题,尚不得而知,根据我的理解,它对B类项目是较好的补充方案,但对A类项目暂时还缺乏可用性,因为A类项目中,运行期的DOM变更并不多,多是整片的改
变,用这个方案去解决的话,有些牛刀杀鸡的感觉。
关于B类项目的组件化,我之前那个没写完的系列是关于它的,但经过最近一年多的思考,我又觉得需要再重新写一篇东西了。感谢你的问题提醒了我,这就写。
6、如何处理好前后端分离的 API 问题
意义很大,但是你的问题本身认识有偏差。
对于前后端分离,认识上有个误区,那就是很多人自称:老早就分离了,全AJAX,使用Angular或者什么什么就可以了。
这个说法是不合适的,打个比方,别人问的是“如何解决家禽把蛋生在水草边的问题?”,但实际上人家养的是鸭子,答题的却是养鸡的,所以回答“不让去水边就行了”,这显然不在点子上。
这两年业界说的前后端分离,是限于偏展示类的系统(用A代替),而不是应用、管控类Web项目(用B代替),在B类项目里,前后端是天然分离的,对此,除了少部分后端开发人员,基本所有人的认识都是一致的。上一段中这样回答的人一般都是只做B类项目,在B类项目里,前后端分离是共识,不需要讨论。
那么,剩下的问题就是讨论A类项目的前后端分离了。这个问题的核心在什么地方呢,在于模板的与数据结合的位置,以及,模板的控制权在谁手里。经过这两年的讨论,基本上我们可以达成的共识就是:模板应当由前端人员去控制,主要原因有两方面:
- 性能优化(尤其是外部资源的管理与发布,请求合并等等)
- 协作的顺畅性(已形成模板的界面片段的返工等问题)
那么,模板到底应该在什么地方跟数据结合?
这个问题就比较折腾了,有部分人尝试像B类项目那样,使用js模板,然后在浏览器端执行,这是存在一些问题的,比如说seo不友好,首屏性能不够,尤其对于首页DOM量很大的电商类网站,差距很明显。
所以还是得把主要的模板放在服务端来执行。在这个过程中,阿里作了一些尝试,那就是引入Node层,在这一层把模板与数据进行合成,然后浏览器拿到的就是生成好的HTML了,但也不是所有HTML都是这么生成好的,还是会有一些内容等到了浏览器之后,再用js去加载和生成。
7、一个web项目前后端分离,前端工程师需要掌握哪些
首先你要知道什么是web前端工程师:
Web前端开发工程师,其工作岗位主要职责是专利用(X)HTML/CSS/JavaScript/DOM等各种Web技术进行产品属的界面开发。制作标准优化的代码,并增加交互动态功能,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验,使得web界面可以更加友好的与用户交互。
Web前端工程师需要的技能:
为网站上提供的产品和服务实现一流的Web界面,优化代码并保持良好兼容性
Web前端表现层及与前后端交互的架构设计和开发
JavaScript程序模块开发,通用类库、框架编写
利用各种Web技术模拟开发产品原型
配合后台开发人员实现产品界面和功能
Web新技术调研和资讯整理
精通HTML/XHTML、CSS,熟悉页面架构和布局,精通Ajax、JavaScript、DOM等前端技术,掌握面向对象编程思想
8、web前端开发,前后端分离具体是怎么样的工作模式
前后端分离,顾名思义就是前端只负责前端的开发,后端只只负责后端的开发,如何通过接专口来进行数据交属互。
这样做的好处就是:开发可以同时进行,代码维护更加方便,前端只需要拿到后端提供的接口,传递对应的数据就可以了,然后再把后端返回的数据渲染到前端页面上。
至于跨域问题是可以解决的,一般让后端解决就行了。最后上传到服务器的也很简单,你前端的就上传你开发的前端代码,后端的就上传他后端的代码就搞定了
9、现在开发网站一般都使用什么方式?什么是前后端分离
前后端分离的由来是:以前开发网站都是 jsp、asp 这类动态脚本。
jsp、asp这种参杂了版后端语言、javascript、css、html 的混合脚本,权使代码开发和维护都极其不方便。
随着前端交互越来越复杂,jsp、asp 这种脚本语法已经不能满足开发的需求了。
于是前后端的概念就提出了:前端人员负责页面展示和交互,然后通过 ajax 调用后端人员写好的数据接口。
所以开发网站的核心现在基本上就是:
html + css :页面展示
javascript + ajax(这个算是浏览器的一部分,可以通过 javascript 调用) : 页面交互、逻辑处理
通常的开发框架选择:
简单网站: jquery + bootstrap
后台管理系统: angularjs + jquery + bootstrap + webpack
复杂的产品: react + rex + webpack
10、前后端分离的网页能不能做百度的seo
可以啊,现在大部分都是前后端分离啊,方便快捷使用,做优化这个不是主要,网页把基本优化元素布局好就行