浅谈前后端分离与不分离

前后端的分离与不分离

  随着不同终端的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本,为了提升开发效率,前后端分离的需求越来越被重视,前端主要负责页面的展现和交互逻辑,后端主要负责业务和数据接口,同一份数据接口,我们可以定制开发多个版本。

前后端不分离:

  在之前的开发方法,php代码写在HTML中,不存在纯粹的PHP文件和HTML文件,这就是前后端的不分离,也就是php和HTML你中有我我中有你,而在前后端不分离的应用模式中,前端页面看到的都是由后端控制,由后端渲染页面或者重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高,请求的数据交互如下图:

例如:

  1、前端工程师对php代码读不懂,php工程师对css等内容也不熟悉。

  2、开发效率会大大降低,比如前端写好静态demo,后端翻译成VM模板,也比如直接基于后端环境的开发,那样配置和安装使用都很麻烦,而且前端还是要写VM,依赖后端数据,效率依然不高。

  3、前端能力发挥收到局限,比如性能优化,如果性能优化只在前端做空间非常有限,于是我们经常要与后端合作,但是由于后端的框架限制,我们很难来优化性能。

最后,发现只有做到真正的前后端分离,才能够真正的彻底的解决以上的问题。所以后来就有了前后端分离。

前后端分离:

  前端:负责View(视图层/做HTML页面的展示)Controller(逻辑层/书写业务逻辑)层。

  后端:负责Model(数据层/数据的增删改查)层。

  在前后端分离的应用模式中,后端仅返回前端所需的数据,不在渲染HTML页面,不再控制前端的效果,用户看到什么样的效果,从后端请求的数据如何加载到前端中,都由前端自己决定,后端仅仅需要提供一套逻辑对外提供数据即可,并且前端与后端的耦合度相对较低,在这种模式中,我们通常将后端开发的每个视图都成为一个接口,或者API,前端通过访问接口来对数据进行增删改查。

 对应的数据交互如下图:

前后端分离的好处是什么?

  1、为优质产品打造精益团队

术业有专攻,通过前后端分离,让前后端工程师只需要专注于前端或者后端的开发工作,培养前端工程师独特的技术特性,然后构建出一个全栈式的精益开发团队。

  2、提高工作效率,分工更加明确

前后端分离的工作流程可以使得前端专心前端,后端关心后端,两者开发同时进行,提高工作效率,页面的增加和路由的修改也不必再去麻烦后端,开发更加灵活。

  3、局部性能提升

通过前端路由的配置,我们可以实现页面的按需加载,无序一开始加载首页便加载网站的所有资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。

  4、增强代码的可维护性

前后端分离后,应用的代码不再是前后端混合,只有在运行期才会调用依赖关系,并且分层明确,应用代码变得整洁清晰。

最后:

  总的简单来说:前后端分离主要就是将数据操作和显示分离分离出来,前端专注做数据显示,通过文字、图片或者图标等方式让数据显示出来,后端专注的做数据的操作。

  前端把数据发给后端,然后后端对数据进行修改。

  而后端提供接口给前端调用,来触发后端对数据的操作。

原文地址:https://www.cnblogs.com/-Bloom/p/10260824.html

时间: 2024-11-05 20:40:44

浅谈前后端分离与不分离的相关文章

浅谈前后端分离

浅谈前后端分离 所谓的前后端分离,到底是分离什么呢?其实就是页面的渲染工作,之前是后端渲染好页面,交给前端来显示,分离后前端需要自己拼装html代码,然后再显示.前端来管理页面的渲染有很多好处,比如减少网络请求量,制作单页面应用等.事情听起来简单,但这么一分离又会牵扯到很多问题,比如: 资源的按需加载.尤其是在单页应用中. 页面展现逻辑.分离让前端的逻辑陡增,需要有一个良好的前端架构,如mvc模式. 数据校验.因为页面数据都是从后端请求来的,必须校验要展示的数据是否合法,避免xss或其他安全问题

浅谈前后端分离。

在传统的web应用开发中,大多数的工作人员会将浏览器作为前后端的分界线.将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端. 在前后端不分离的时代,在项目开发阶段,前端人员负责编写HTML页,后端人员负责写接口,前端人员调试页面动态数据都需要后端人员的配合,不能单独调试,耗时耗力.前端把前后端代码存放于同一个代码库中,甚至是同一工程目录下.页面中还夹杂着后端代码.前后端工程师进行开发时,都必须把整个项目导入到开发工具中. 前后端不分离

浅谈前后端分离与实践(一)

一.起源 (故事纯属虚构,如有雷同,纯属巧合)传说在很久很久以前,我们有志之士有了个创业的想法,于是乎开始了自己的创业之梦,但是人手不足啊,于是乎所有角色老子一个人全包了: Roles: PM, DBA, RD, FED, Designer, ... Skills: Linux, MySQL, JAVA, JavaScript, HTML, CSS, ... Tools: phpmyadmin, photoshop, powerpoint, ... 我们用 express 应用生成器来模拟一下传

理解Web路由(浅谈前后端路由与前后端渲染)

1.什么是路由? 在Web开发过程中,经常会遇到『路由』的概念.那么,到底什么是路由?简单来说,路由就是URL到函数的映射. 2.router 和 route 的区别 route就是一条路由,它将一个URL路径和一个函数进行映射,例如: /users -> getAllUsers() /users/count -> getUsersCount() 这就是两条路由,当访问 /users 的时候,会执行 getAllUsers() 函数:当访问 /users/count 的时候,会执行 getUs

浅谈前后端交互

首先,关于接口文档--由后台设计修改(前端是接口文档的使用者) 其次,前后端交互的数据,格式是:json,(xml不多了) 重要的是,前后端如何交互??--接口地址+前端请求的参数+后台返回的参数 1.接口地址: 2.前端请求的参数: 形式:get/post(get从指定服务器提取数据,post将数据提交给指定服务器): 所有前端url后面的参数都是辅助后台数据查询的:若不需要参数,则后台会直接将url给前端: 注:为什么需要在请求的时候传入参数??--后台在查询数据库的时候需要按条件查询. 3

浅谈前、中、后缀表达式

浅谈前.中.后缀表达式 前.中.后缀表达式是信息学奥林匹克竞赛中比较鸡肋的知识点.但是知识点在考纲范围内,而且中缀表达式转后缀表达式是比较有用的知识.所以在这里为大家简单介绍一下. 之前在自学前.中.后缀表达式的时候,发现网上的很多博客和讲解的思路都不是很明了,或者就是对新手不是很友好,感谢@JZYShurak的讲解,让我对这个东西建立了一个直观的认识.所以我来补一篇比较基础,比较好理解,语言比较简洁的博客.希望能对各路大佬有所些许的帮助. 中缀表达式 中缀表达式就是我们生活中常用的表达式,简单

从.NET到Node.js谈前后端分离实践(by vczero)

一.最初的[无分离]实践 11年末的时候,用winForm开发程序,拖拖控件,点点按钮,连接数据库,做一些基本的管理系统:Java的JSP还能包揽一切,服务器端拼接模板,顶多使用servlet做一些业务逻辑,做到后端的MVC.那时候,带了一个学校的创新团队,做一些项目,但是基本上是一个人前端后一起搞,现在想想,真是[杂乱无章],后端MVC还好,倒是前端,基本上只能做一些简单效果,施展的空间不大,幸好,也基本能完成项目. 我称之为[无分离]实践,如果是像一个人搞,开发速度倒是挺快的. 前后端无分离

浅谈高性能数据库集群——读写分离

本文主要介绍高性能数据库集群读写分离相关理论,基本架构,涉及的复杂度问题以及常见解决方案. 1 读写分离概述 基本架构图: 2 适用场景 读写分离不是银弹,并不是一有性能问题就上读写分离,而是应该先优化,例如优化慢查询,调整不合理的业务逻辑,引入缓存查询等只有确定系统没有优化空间后才考虑读写分离集群 3 引入的系统复杂度问题 问题一 主从复制延迟 问题二 分配机制 如何将读写操作区分开来,然后访问不同的数据库服务器? 解决方案1 客户端程序代码封装实现 基本架构图 业界开源实现 Sharding

浅谈Java后端开发工程师腾讯面试经历分享总结

最近一段时间考虑到换工作,打算整理一下网络上曾经面试者分享的的面试经历并结合自己以往的面试经历和经验,帮助大家获取到互联网大厂的入职通知书,也就是入职offer. 本文整理网络面试者和本人的面试经历和面试经验分享给大家,主要出于个人层面上做个自我总结.沉淀一下面试经历以及让一些有能力的面试者了解一些互联网大厂企业面试过程,如果有人向往这些大厂企业,告知面试者需要做哪些准备从而能够如愿以偿的获取到互联网大厂企业的入职通知书. 面试做好提前准备 一谈到面试这个问题,很多人都会心里一紧,尤其是一些生性