今天宠物迷的小编给各位宠物饲养爱好者分享什么是前后端分离的宠物知识,其中也会对怎么理解前后端分离(怎么理解前后端分离问题)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
对于前后端分离,认识上有个误区,那就是很多人自称:我们老早就分离了,全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类项目的组件化,我之前那个没写完的系列是关于它的,但经过最近一年多的思考,我又觉得需要再重新写一篇东西了。感谢你的问题提醒了我,这就写。
前后端分离的意思是:前后端分离并非仅仅只是一种开发模式,而是一种架构模式。 前后端分离已成为互联网项目开发的业界标准使用方式,通过【nginx+tomcat】的方式,也可以中间加一个nodejs,有效的进行解耦。 SSR优势1、更好的SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面。2、更快的内容到达时间 (time-to-content),特别是对于缓慢的网络情况或运行缓慢的设备。无需等待所有的 JavaScript 都完成下载并执行,才显示服务器渲染的标记,所以用户将会更快速地看到完整渲染的页面。 通常可以产生更好的用户体验,并且对于那些「内容到达时间(time-to-content) 与转化率直接相关」的应用程序而言,服务器端渲染 (SSR) 至关重要。
如果是问“什么是正确的前后端分离”,我还真不敢回答,生怕自己的理解有什么偏差;但是问怎么“理解前后端分离”,那我可以结合自身的工作,谈谈我对前后端分离的理解,也欢迎大家提出不同的理解。 我07年参加工作就是做企业级项目的开发,那时候的一些项目都只有一个包,没有什么代码规范,业务逻辑散落在各处,甚至是JSP中直接访问数据库并做业务处理。 后来逐渐有了一些规范,页面就是页面,代码就是代码,很多项目开始使用Ajax框架。 发展的更进一步,后端代码有了分层,cotroller/service/dao,可能每个项目分层策略不同(三层和两层居多),每层的叫法不同(cotroller还是action),数据从页面到最后访问数据库,需要走到多个分层中。 不过到了此阶段,在企业级项目的开发过程中,Java程序员依然要兼顾前后端的开发,所以前端页面的样子嘛,达不到美观的程度,也就是能用。 前后端分离有很多的好处:前端开发和后端开发可以各司其职,约定好接口之后就可以并行开发;后端接口可以复用,如果项目同时有电脑网页端、移动网页端、APP端等多个入口的时候,后端可以只有一个; 带来好处的同时,也会有一些缺点,例如:增加了架构的复杂性,如果技术能力不足的团队,可以考虑半分离(例如我们部门都是企业级应用,都没有前端开发人员);如果是面向互联网的应用,需要搜索引擎抓取,就需要服务器端渲染;另外前后端交互的接口,也需要花时间和精力设计。
在不使用vue ,react ,anglar这类的框架的情况下,前后端分离应该如何做?
需求是这样:
前端写html页面(非单页面应用),
index 首页
about 关于我们
newslist 新闻列表
newsdetail 新闻详情
productlist 产品列表
productdetail 产品详情
后台只提供json数据
那么
1、前端数据如何渲染?
2、页面跳转是否必须使用路由?(不想使用路由)
3、页面间的数据传递如何做,比如:列表页到详情页的参数传递如何做?
解耦,降低耦合度,而且前后端分离可以提升一些后端的开发效率。
nodejs本身就替代了php的后端功能。如果是node来写RESTful接口,php调用接口并渲染页面,两边把接口定义好,各写各的。
前后端分离,顾名思义就是前端只负责前端的开发,后端只只负责后端的开发,如何通过接口来进行数据交互。
这样做的好处就是:开发可以同时进行,代码维护更加方便,前端只需要拿到后端提供的接口,传递对应的数据就可以了,然后再把后端返回的数据渲染到前端页面上。
至于跨域问题是可以解决的,一般让后端解决就行了。最后上传到服务器的也很简单,你前端的就上传你开发的前端代码,后端的就上传他后端的代码就搞定了
前端,官方的定义是前端就是网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。 用自己的话来说,前端是网页给访问网站的人看的内容和页面。那前端开发顾名思义就是这些内容和页面中代码的实现。 不过现在的前端不完全就是网页设计,早年的网页设计主要是以图片和文字为主,用户使用网站的行为也以浏览为主。而现在的前端开发使得现代网页更加美观,交互效果显著,功能更加强大。所以现在的前端开发,运用到的知识面更加广泛,难度也更大。 不过,无论怎么发展,HTML、CSS和JavaScript依然是整个前端开发的三大基石。所以不论题主是想做移动前端开发还是web前端开发,这三样基础技术都必须熟练掌握。 1,HTML是网页的核心,是一种制作网页页面的标准语言,可以消除不同计算机之间信息交流的障碍。因此,它是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言,学好HTML是成为Web开发人员的基本条件。HTML是一种标记语言,能够实现Web页面并在浏览器中显示。 2,CSS是用来进行网页风格设计,页面制作完成当然需要美化,这时候就会用到CSS,它可以网页外观做的更加美观。 3,JavaScript主要目的是为了解决服务器端语言,为客户提供更流畅的浏览效果。加入JavaScript,是为了提供了数据验证的基本功能。 学会这些,当然也只是开始,这都是最基础的部分。学无止境,要想学好前端,就要付出百倍的努力。
下一篇
什么是磁场中的高斯定律?