前后端不分离怎么开发?

网上科普有关“前后端不分离怎么开发?”话题很是火热,小编也是针对前后端不分离怎么开发?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。前...

网上科普有关“前后端不分离怎么开发? ”话题很是火热,小编也是针对前后端不分离怎么开发?寻找了一些与之相关的一些信息进行分析 ,如果能碰巧解决你现在面临的问题,希望能够帮助到您 。

前后端分离与不分离的区别总结

前后端不分离:

在前后端不分离的情况下,前端页面看到的效果都是有后端控制的 ,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。

这种模式比较适合纯文本的形式 ,但如果是后端对接APP时 ,App不仅仅给后端返回一个HTML网页也可能只有数据本身,所以这种模式不适合与APP对接,为了与APP数据对接我们还必须开发一套适合APP的接口。

前后端分离:

在前后端分离模式下 ,后端仅返回前端所需要的数据,不在渲染前端页面

ASP.NET开发如何做到前后端分离

如果使用webform这种形式的开发,必须使用服务器控件 ,控件都是runat=server 。这样的形式就是前后台不分离的

使用htm+ajax+jquery前端和js框架,后台使用一般处理程序或者mvc的形式就可以做到,前端的处理和后台的处理无太大的关系

前后端分离方案以及技术选型

作者:关开发

一.什么是前后端分离?

理解前后端分离大概可以从3个方面理解:

1.交互形式

2.代码组织形式

3.开发模式与流程

1.1交互形式

前后端不分离

后端将数据和页面组装、渲染好了之后 ,向浏览器输出最终的html;浏览器接收到后会解析html,解析引入的css 、执行js脚本,完成最终的页面展示。

前后端分离

后端只需要和前端约定好接收以及返回的数据格式(一般用JSON格式) ,向前端提供API接口。前端就可以通过HTTP请求调用API的方式进行交互 。前端获取到数据后,进行页面组装、渲染,最终在浏览器呈现 。

1.2代码组织形式

前后端不分离

在web应用早期的时候 ,前端页面以及后台业务数据处理的代码都放在一个工程下 ,甚至放在同一目录下,前端页面夹杂着后端代码。前、后端开发工程师都需要把整套代码导入开发工具才能开发。此阶段下前后端代码以及工作耦合度太高,前端不能独立开发和测试 ,后端人员也要依赖前端完成页面后才能完成开发 。最糟糕的情况是前端工程师需要会后端模板技术(jsp),后端工程师还要会点前端技术,需要口头说明页面数据接口 ,才能配合完成开发。否则前端只能当一个“切图仔”,只输出HTML 、CSS、以及很少量与业务逻辑无关的js;然后由后端转化为后端jsp,并且还要写业务的js代码。

前后端分离

前后端代码放在不同的工程下 ,前端代码可以独立开发,通过mock/easy-mock技术模拟后端API服务可以独立运行、测试;后端代码也可以独立开发,运行 、测试 ,通过swagger技术能自动生成API文档供前端阅读,还可以进行自动化接口测试,保证API的可用性 ,降低集成风险 。

1.3开发模式与流程

前后端不分离

在项目开发阶段 ,前端根据原型和UI设计稿,编写HTML 、CSS以及少量与业务无关的js(纯效果那些),完成后交给后台人员 ,后台人员将HTML转为jsp,并通过JSP的模板语法进行数据绑定以及一些逻辑操作。后台完成后,将全部代码打包 ,包含前端代码、后端代码打成一个war,然后部署到同一台服务器运行。顶多做一下动静分离,也就是把、css 、js分开部署到nginx 。

具体开发流程如下:图略

前后端分离

实现前后端分离之后 ,前端根据原型和UI设计稿编写HTML、CSS以及少量与业务无关的js(纯效果那些),后端也同时根据原型进行API设计,并与前端协定API数据规范。等到后台API完成 ,或仅仅是API数据规范设定完成之后。前端即可通过HTTP调用API,或通过mock数据完成数据组装以及业务逻辑编写 。前后端可以并行,或者前端先行于后端开发了。

具体开发流程如下:图略

二、前后端分离的好处与坏处。

从上面3个方面对比了之后 ,前后端分离架构和传统的web架构相比 ,有很大的变化,看起来好处多多 。到底是分还是不分,我们还是要理性分析是否值得才去做 。

从目前应用软件开发的发展趋势来看 ,主要有两方面需要注意:

·越来越注重用户体验,随着互联网的发展,开始多终端化。

·大型应用架构模式正在向云化 、微服务化发展。

我们主要通过前后端分离架构 ,为我们带来以下四个方面的提升:

·为优质产品打造精益团队

通过将开发团队前后端分离化,让前后端工程师只需要专注于前端或后端的开发工作,是的前后端工程师实现自治 ,培养其独特的技术特性,然后构建出一个全栈式的精益开发团队 。

·提升开发效率

前后端分离以后,可以实现前后端代码的解耦 ,只要前后端沟通约定好应用所需接口以及接口参数,便可以开始并行开发,无需等待对方的开发工作结束。与此同时 ,即使需求发生变更 ,只要接口与数据格式不变,后端开发人员就不需要修改代码,只要前端进行变动即可。如此一来整个应用的开发效率必然会有质的提升 。

·完美应对复杂多变的前端需求

如果开发团队能完成前后端分离的转型 ,打造优秀的前后端团队,开发独立化,让开发人员做到专注专精 ,开发能力必然会有所提升,能够完美应对各种复杂多变的前端需求。

·增强代码可维护性

前后端分离后,应用的代码不再是前后端混合 ,只有在运行期才会有调用依赖关系。应用代码将会变得整洁清晰,不论是代码阅读还是代码维护都会比以前轻松 。

那么前后端分离有什么不好的地方吗?我目前是没有想到,除非你说会增加前端团队的配备 ,后端工程师会变的不全能。。 。

二、前后端分离架构方案。

实现前后端分离,主要是前端的技术架构变化较大,后端主要变为restfull风格API ,然后加上Swagger技术自动生成在线接口文档就差不多了。

对于目前用于前后端分离方案的前端技术架构主要有两种:

·传统SPA

·服务端渲染SSR

2.1传统SPA

传统SPA指的是单页面应用 ,也就是整个网站只有一个页面,所有功能都通过这一个页面来呈现 。因为一个人的肉眼,某一个时间点看一个页面 ,既然如此何必要不同功能做多个页面呢?只保留一个页面作为模板,然后通过路由跳转来更新这个模板页面的内容不就可以了吗?确实如此,现在通过reac全家桶、tvue全家桶 ,模块化 、路由、wabpack等技术轻而易举就能实现一个单页面应用 。

单页面应用的运行流程

1.用户通过浏览器访问网站url

2.单页面的html文件(index.html)被下载到浏览器,接着下载html里面引用的css,js。

3.css ,js下载到浏览器完成之后,浏览器开始解析执行js向后端服务异步请求数据。

4.请求数据完成后,进行数据绑定、渲染 ,最终在用户浏览器呈现完整的页面 。

2.2服务端渲染

服务端渲染的方案指的是数据绑定,渲染等工作都放在服务端完成,服务端向浏览器输出最终的html。大家看完这个是不是有个疑问 ,这不是又回到了前后端不分离的时代了吗?答案是否定的 ,因为这里的服务端是用来执行前端数据绑定 、渲染的,也就是把浏览器的一部分工作分担到了服务端。而目前具备这只种能力的服务端是NodeJs服务端 。

它的原理其实就是在浏览器与前端代码中间插入了一个NodeJs服务端。浏览器请求前端页面时,会先经过NodeJS服务端 ,由NodeJs去读取前端页面,并执行异步后端API,获取到数据后进行页面数据绑定 ,渲染等工作,完成一个最终的html然后返回浏览器,最后浏览器进行展示。

服务端渲染应用的运行流程:

1.用户通过浏览器访问网站url

2.NodeJS服务端接收到请求 ,读取到对应的前端html,css,js 。

3.NodeJS解析执行js向后端API异步请求数据。

4.NodeJs请求数据完成之后 ,进行数据绑定、渲染,得到一个最终的html。

5.NodeJs向浏览器输出html,浏览器进行展示 。

PS:其实本质就是把前端编写成一个nodeJs的服务端web应用。实施服务端渲染后 ,我们最终运行的是一个Nodejs服务端应用。而单页面应用是把静态页面部署到静态资源服务器进行运行 。

看到这里 ,你是否又有疑问,为什么要这么麻烦搞服务端渲染呢?

2.3SPA与服务端渲染方案对比

SPA的优点是开发简单,部署简单;缺点是首次加载较慢 ,需要较好的网络,不友好的SEO 。

so,以下就是使用服务端渲染的理由了(摘取vue官方说法):

与传统SPA(单页应用程序(Single-PageApplication))相比 ,服务器端渲染(SSR)的优势主要在于:

·更好的SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面。

请注意,截至目前 ,Google和Bing可以很好对同步JavaScript应用程序进行索引。在这里,同步是关键 。如果你的应用程序初始展示loading菊花图,然后通过Ajax获取内容 ,抓取工具并不会等待异步完成后再行抓取页面内容。也就是说,如果SEO对你的站点至关重要,而你的页面又是异步获取内容 ,则你可能需要服务器端渲染(SSR)解决此问题。

·更快的内容到达时间(time-to-content) ,特别是对于缓慢的网络情况或运行缓慢的设备 。

无需等待所有的JavaScript都完成下载并执行,才显示服务器渲染的标记,所以你的用户将会更快速地看到完整渲染的页面。通常可以产生更好的用户体验 ,并且对于那些「内容到达时间(time-to-content)与转化率直接相关」的应用程序而言,服务器端渲染(SSR)至关重要。

使用服务器端渲染(SSR)时还需要有一些权衡之处:

·开发条件所限 。浏览器特定的代码,只能在某些生命周期钩子函数(lifecyclehook)中使用;一些外部扩展库(externallibrary)可能需要特殊处理 ,才能在服务器渲染应用程序中运行。

·涉及构建设置和部署的更多要求。与可以部署在任何静态文件服务器上的完全静态单页面应用程序(SPA)不同,服务器渲染应用程序,需要处于Node.jsserver运行环境 。

·更多的服务器端负载。在Node.js中渲染完整的应用程序 ,显然会比仅仅提供静态文件的server更加大量占用CPU资源(CPU-intensive-CPU密集),因此如果你预料在高流量环境(hightraffic)下使用,请准备相应的服务器负载 ,并明智地采用缓存策略。

以vue为例,实施服务端渲染可以查看官方指南:,或选择Nuxt.js

2.4预渲染技术

如果你调研服务器端渲染(SSR)只是用来改善少数营销页面(例如/,/about,/contact等)的SEO ,那么你可能需要预渲染 。无需使用web服务器实时动态编译HTML ,而是使用预渲染方式,在构建时(buildtime)简单地生成针对特定路由的静态HTML文件 。优点是设置预渲染更简单,并可以将你的前端作为一个完全静态的站点。

如果你使用webpack ,你可以使用prerender-spa-plugin轻松地添加预渲染。它已经被Vue应用程序广泛测试-事实上,作者是Vue核心团队的成员 。

prerender-spa-plugin:

三、前后端分离技术选型

-artTemplate+bootstrap(不推荐,不算完全前后端分离)

-vue全家桶(推荐)

-react全家桶(推荐 ,生态全)

java为啥没有前后端不分离模式

因为前后端分离有很多优点。

1 、为优质产品打造精益团队,通过将开发团队前后端分离化,让前后端工程师只需要专注于前端或后端的开发工作 ,是的前后端工程师实现自治,培养其独特的技术特性,然后构建出一个全栈式的精益开发团队。2 、提升开发效率 ,前后端分离以后,可以实现前后端代码的解耦,只要前后端沟通约定好应用所需接口以及接口参数 ,便可以开始并行开发 ,无需等待对方的开发工作结束 。与此同时,即使需求发生变更,只要接口与数据格式不变 ,后端开发人员就不需要修改代码,只要前端进行变动即可。如此一来整个应用的开发效率必然会有质的提升。3、完美应对复杂多变的前端需求,如果开发团队能完成前后端分离的转型 ,打造优秀的前后端团队,开发独立化,让开发人员做到专注专精 ,开发能力必然会有所提升,能够完美应对各种复杂多变的前端需求 。4、增强代码可维护性,前后端分离后 ,应用的代码不再是前后端混合,只有在运行期才会有调用依赖关系。应用代码将会变得整洁清晰,不论是代码阅读还是代码维护都会比以前轻松。

关于“前后端不分离怎么开发?”这个话题的介绍 ,今天小编就给大家分享完了 ,如果对你有所帮助请保持对本站的关注!

本文来自作者[裂鹰王]投稿,不代表石号立场,如若转载,请注明出处:https://s0429.com/cshi/202512-2122.html

(110)

文章推荐

  • 上海什么时候解封(上海什么时候解封恢复正常)

    上海3月17号能全面解除封闭吗1、上海3月17日无法全面解除封闭管理。根据疫情防控规定,采取封闭管理的小区通常需满足7-14天无新增确诊病例或核酸检测阳性人员的条件方可解封。当前上海多地因疫情调整为中风险地区并实施封闭管理,而3月17日距离部分区域启动封控措施的时间尚不足14天,因此无法实现全面解

    2025年11月23日
    23
  • 湖北新增病例(湖北新增1例确诊病例)

    国家卫健委:我国本轮疫情流行高峰已经过去!1、我国本轮疫情流行高峰已经过去。具体分析如下:湖北除武汉外疫情控制成效显著:湖北除武汉外所有地市已连续一周无新增确诊病例,表明省内非重点区域疫情传播得到有效阻断,防控措施取得阶段性成果。湖北以外新增病例以境外输入为主:湖北以外地区新增确诊病例7例,其中6

    2025年11月25日
    26
  • 关于河北疫情最新消息今天新增一例的信息

    严峻!河北新增确诊51例!3名干部被问责月6日0—24时,河北省新增本土确诊病例51例,3名干部因疫情防控不力被问责。以下是详细情况:新增确诊病例情况:1月6日0—24时,31个省(自治区、直辖市)和新疆生产建设兵团报告新增确诊病例63例,其中境外输入病例11例,本土病例52例(河北51例,辽宁

    2025年11月28日
    17
  • 科普宣讲讲稿1000字内容(科普讲座演讲稿)

    关于航天科普知识的演讲稿,急急急!!!1、第一架可重复使用的航天飞机第一架可重复使用的航天飞机是美国的哥伦比亚号航天飞机,它于1981年4月21日发射升空飞向地球轨道,绕地球飞行36圈,历时54小时20分钟。2、讲嫦娥1号、2号世界航空事业的认识:正载人航天的三大里程碑载人航天是指人驾

    2025年12月04日
    11
  • 健康科普知识宣传心得体会怎么写(健康科普知识宣教总结)

    世界艾滋病日个人心得体会作文10篇1、世界艾滋病日个人心得体会作文艾滋病是联合国确定的当今三大国际公害之一,艾滋病在世界范围的快速扩散已引起各国政府的高度关注。目前,全世界有四千多万艾滋病毒感染者,每年新感染人数高达五百多万,死亡三百多万。艾滋病病毒的复制方式极为独特,很多国家花巨资研制药物和疫

    2025年12月04日
    11
  • 上海发布阳性感染者详情(上海本地发现一名新冠阳性)

    11月20日上海新增本土6+33上海公布昨天新增15上海市卫健委11月21日通报:2022年11月20日0—24时,新增本土确诊病例6例和无症状感染者33例,均在隔离管控中发现,详情如下。ps:阳性感染者居住地按区划分进行统计,「点击此处」查看详情。上海新增6例本土确诊2022年11月20日0—2

    2025年11月23日
    44
  • 河南一家11口确诊(河南最近爆发的传染病)

    商丘一家四代共计11人确诊,邻居与其吵架被确诊,病毒的传染速度有多快...可是在新冠疫情爆发的时候网友们真正的认识到了什么叫做祸从口出,因为商丘有一家4代11人确诊,可是最终报出来的数据却是12个,这第12例确诊病例其实就是这家人的邻居。之所以会被感染就是因为在8月2号的时候邻居和这一家人发生了争

    2025年11月29日
    18
  • 全国疫情最新情况数据(全国疫情最新情况冠状)

    截至7月12日24时新型冠状病毒肺炎疫情最新情况1、重症病例数量与前一日持平。境外输入病例累计情况:现有确诊病例427例,其中重症病例3例。现有疑似病例3例。累计确诊病例6842例,累计治愈出院病例6415例,无死亡病例。全国累计病例数据:现有确诊病例492例,其中重症病例3例。累计治愈出院病例8

    2025年11月29日
    15
  • 科普知识视频小学生三年级下册(科普版三年级下册知识点)

    小学生必读书目之三年级必读书目《亲爱的汉修先生》:由美国作家克莱瑞所著,这是一部关于成长与书信的温馨故事,引导孩子们学会表达与交流。《彼得·潘》:由英国作家巴里所著,这是一部充满奇幻色彩的童话,讲述了彼得·潘与温蒂等孩子们在永无岛上的冒险故事。以上即为小学生必读书目之三年级必读书目及推荐书目,这些

    2025年12月04日
    7
  • 网页中隐藏内容怎么显示?

    网上科普有关“网页中隐藏内容怎么显示?”话题很是火热,小编也是针对网页中隐藏内容怎么显示?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。要想显示网页中隐藏的内容你就需要知道他是怎么隐藏的,在一个网页上隐藏内容有无数的方法。一下介绍几种:颜色,将文字颜色和背景

    2025年12月06日
    171

发表回复

本站作者后才能评论

评论列表(4条)

  • 裂鹰王
    裂鹰王 2025年12月06日

    我是石号的签约作者“裂鹰王”!

  • 裂鹰王
    裂鹰王 2025年12月06日

    希望本篇文章《前后端不分离怎么开发?》能对你有所帮助!

  • 裂鹰王
    裂鹰王 2025年12月06日

    本站[石号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 裂鹰王
    裂鹰王 2025年12月06日

    本文概览:网上科普有关“前后端不分离怎么开发?”话题很是火热,小编也是针对前后端不分离怎么开发?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。前...