当前位置:首页 » 网页前端 » 前端分离
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

前端分离

发布时间: 2022-01-17 13:01:18

Ⅰ 怎么理解前后端分离

对于前后端分离,认识上有个误区,那就是很多人自称:我们老早就分离了,全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类项目的组件化,我之前那个没写完的系列是关于它的,但经过最近一年多的思考,我又觉得需要再重新写一篇东西了。感谢你的问题提醒了我,这就写。

Ⅱ 什么是前后端分离为什么分离

在不使用vue ,react ,anglar这类的框架的情况下,前后端分离应该如何做?
需求是这样:
前端写html页面(非单页面应用),
index 首页
about 关于我们
newslist 新闻列表
newsdetail 新闻详情
proctlist 产品列表
proctdetail 产品详情
后台只提供json数据
那么
1、前端数据如何渲染?
2、页面跳转是否必须使用路由?(不想使用路由)
3、页面间的数据传递如何做,比如:列表页到详情页的参数传递如何做?

Ⅲ 对于前后端分离项目,还适合使用springmvc吗

不知道你说的前后端分离
是指前后端有关系分开来开发
还是指前后端没有关系
如果是前后端有关系分开开发
Spring MVC适合使用
如果前后端没有关系
可以考虑使用其它技术或方式实现

Ⅳ web开发中,怎样做到前后端分离

一般情况下

  • 前端的工作:实现整一个前端页面以及交互逻辑,以及利用ajax与服务器(中间层)交互,使用javascript的模板技术

  • 后端的工作:提供API接口,与数据库交互

Ⅳ 前后端分离,怎么做SEO优化

可以利用现在的前端框架做同构支持(目前热门的前端框架都支持同构)。在初次网址访问时由服务器渲染页面内容,Client端资源做CDN,这样就可以支持SEO优化了。

如果使用的是angularjs的话,可以看看Prerender - AngularJS SEO, BackboneJS SEO, or EmberJS SEO

Ⅵ 前后端分离必须用到 nodejs吗

AngularJS是前段的基于JS的MVC框架,NodeJS是服务端的JS框架,并不存在前后端分离的问题。 简明的解释是使用NodeJS作为服务端的时候前端不是必须用angularJS的,同样angularJS也可以搭配PHP,Java等服务端语言使用。
node.js是用于服务器端,做后台程序的。AngularJS是前端框架,主要用于数据绑定,不需要安装,只要在标签导入就能用了。

Ⅶ web为什么要前后端分离优点是什么

解耦,降低耦合度,而且前后端分离可以提升一些后端的开发效率。

Ⅷ 前后端分离后,html放哪里

用框架的话每一种框架放的位置都不一样,Thinkphp里面是MVC,HTML放在V(View)里面

Ⅸ 什么是前后端,有没有前后端分离,还有如何区分mvc与前后端分离

1>>前后端分离的意思是,前后端只通过 JSON 来交流...

同意其他几位,JSON 只是一种可选的协议,而不是唯一,也未必是前后端通信的最佳方案。

2>>组件化、工程化不需要依赖后端去实现...有哪些好处或弊端?

前端的组件化、工程化,js 等代码越来越胖,有点类似于过去 C/S 时代的 fat client。所以这个问题相当于,计算是主要放在 client 好,还是 server 好?

Fat client 好,还是 thin client 好,取决于所开发应用、产品、系统的类型、规模和特点,其中一些权衡因素主要包括软件复杂度、人机交互模型、网络带宽、server 与 client 的处理能力等等。无所谓好坏,适合就好。

Client-side MVC 确实是一个趋势,Web 架构设计上的一个创新。

Ⅹ web开发中,什么是前后端分离

优秀的WEB架构,必定会应用一些分层设计的思想,这样可以让系统开发起来更灵活,同时后期维护也比较方便。

  • 前端的页面基本都是使用 JavaScript 的富户端页面,主要应用的框架用,jquery、jquery ui、knockout js、Durandal。

  • 自己封装的 UI 组件,后端的主要采用到的技术有 OData、MVC、Linq to SQL 以及自己写的一个权限管理组件,数据库采用的是 SQL Server 2005。