前后端分离与不分离的工作流程

1、背景介绍

分离:以SPA为例,不分离:以JSP为例
JSP:(Java Server Pages,Java服务器页面),意思是基于JAVA服务器的网页技术,是一种动态网页开发技术,使用JSP标签在HTml网页中插入Java代码。跟asp,php一样,都是网页制作用的语言。

SPA:单页Web应用(Single-page application,SPA),只有一张Web页面的应用,是加载单个HTML页面并在用户与应用程序交互时动态更新该页面的web应用程序。

2、特点剖析

JSP特点

跨平台,业务代码分离,组建重用、继承JavaServlet功能、预编译。
在这里插入图片描述

JSP工作流程

(1)客户端请求
(2)服务器的servlet或controller接受请求(路由规则由后端制定,整个项目开发的权重大部分在后端)
(3)调用service代码完成业务逻辑
(4)返回jsp
(5)jsp展现一些动态的代码

SPA特点

1.速度-更好的用户体验,让用户在web app感受native app的速度和流畅。

2.MVC-经典MVC开发模式,前后端各负其责,扯皮现象会少很多。

3.ajax-重前端,业务逻辑全部在本地操作,数据都需要通过AJAX同步、提交。

4.路由-在URL中采用#号来作为当前视图的地址,改变#号后的参数,页面并不会重载
在这里插入图片描述

SPA工作流程

1.浏览器发送请求

2.直接到达html页面(路由规则由前端制定,整个项目开发的权重前移)

3.html页面负责调用服务端接口产生数据(通过ajax等等,后台返回json格式数据)

4.填充html,展现动态效果,在页面上进行解析并操作DOM。

3、为什么要前后端分离

1.彻底解放前端

前端不再需要向后台提供模板或是后台在前端html中嵌入后台代码,如:
在这里插入图片描述
这是前后端耦合的,可读性差。
在这里插入图片描述
2. 提高工作效率,分工更加明确

前后端分离的工作流程可以使前端只关注前端的事,后台只关心后台的活, 两者开发可以同时进行,在后台还没有时间提供接口的时候,前端可以先将 数据写死或者调用本地的json文件即可,页面的增加和路由的修改也不必再 去麻烦后台,开发更加灵活。

3.局部性能提升

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

4、单页web的痛点和JSP开发的痛点

①单页web的痛点

1.SEO不友好。

2.刚开始的时候加载可能慢很多

3.用户操作需要写逻辑,前进、后退等;

4.页面复杂度提高很多

②JSP开发的痛点

1.jsp上动态资源和静态资源全部耦合在一起,服务器压力大, 因为服务器会收到各种静态资源的http请求,动态代码的等等。

2.前端工程师做好html后,需要由后端的java工程师来将html修改成jsp页面, 包括各种文件的路径,出错率较高(因为页面中经常会出现大量的js代码), 修改问题时需要双方协同开发,效率低下。

3.jsp必须要在支持java的web服务器里运行(例如tomcat/resin/jboss/weblogic等),性能提不上来。

4.第一次请求jsp,必须要在web服务器中编译成servlet,第一次运行会较慢。

5.每次请求jsp都是访问servlet再用输出流输出的html页面,效率没有直接使用html高(记住是每次哟~~~内存哟,IO哟)。

6.如果在生产环境中,发现了前端的bug,让前端工程师来调试bug,这个时候的页面已经很混乱了,呵呵,他会遇到很多痛点。

7.如果jsp中的内容很多,页面响应会很慢,因为是同步加载

5、Web 前后端分离的意义大吗?

1、该网站前端变化远比后端变化频繁,则意义大。

2、该网站尚处于原始开发模式,数据逻辑与表现逻辑混杂不清,则意义大。

3、该网站前端团队和后端团队分属两个领导班子,技能点差异很大,则意义大。

4、该网站前端效果绚丽/跨设备兼容要求高,则意义大。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前后端分离和不分离是指在开发过程中,前端和后端的代码是否分离到不同的项目或模块中进行开发和部署。以下是两者之间的区别: 1. 开发方式:前后端分离的开发方式中,前端和后端可以独立进行开发,并使用不同的技术栈。前端通常使用 HTML、CSS 和 JavaScript 进行开发,后端可以使用任何适合的编程语言和框架。而不分离的开发方式中,前端和后端的代码可能混在一起,使用同一种技术栈进行开发。 2. 项目结构:前后端分离项目通常会分成两个独立的项目或模块,前端项目负责处理用户界面和用户交互逻辑,后端项目负责处理业务逻辑和数据处理。而不分离项目中,前端和后端的代码可能混在一起,共同构成整个项目的结构。 3. 接口通信:在前后端分离项目中,前端通过 API 接口与后端进行通信,数据以 JSON 或其他数据格式进行传输。而不分离项目中,前端可能直接调用后端的方法或函数来获取数据。 4. 部署方式:前后端分离项目可以将前端代码部署到静态文件服务器上,而将后端代码部署到应用服务器上。这样可以实现前端和后端的独立扩展和部署。不分离项目可能需要将整个项目部署到同一个服务器上。 前后端分离的方式能够提高开发效率、降低耦合度、提升系统的可扩展性和可维护性。同时,它也需要更多的技术栈和协作成本。不分离的方式则更为简单,适用于小型项目或者前后端开发人员技术栈相同的情况。选择哪种方式取决于具体的项目需求和团队技术能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值