博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring+SpringMVC+MyBatis整合进阶篇(四)RESTful实战(前端代码修改)
阅读量:6831 次
发布时间:2019-06-26

本文共 3923 字,大约阅读时间需要 13 分钟。

前言

前文中介绍了RESTful中后端开发的实现,主要是接口地址修改和返回数据的格式及规范的修改,本文则简单介绍一下,RESTful过程中前端代码的改变以及前后端分离的一些想法。

整合代码及修改计划

在这次的代码修改过程中,后端改动相对较大,而前端代码的改动更多的是配合后端修改,主要是请求接口的url及js的ajax请求部分,修改后的代码更加符合RESTful规范:

function saveArticle() {        var title = $("#title").val();        var addName = $("#addName").val();        var content = UE.getEditor('myEditor').getContent();        var id = $("#articleIdfm").val();        var data = {"id": id, "articleTitle": title, "articleContent": content, "addName": addName}        $.ajax({            type: method,//方法类型            dataType: "json",//预期服务器返回的数据类型            url: url,//url            contentType: "application/json; charset=utf-8",            data: JSON.stringify(data),            success: function (result) {                console.log(result);//打印服务端返回的数据                if (result.resultCode == 200) {                    $.messager.alert("系统提示", "保存成功");                    $("#dlg").dialog("close");                    $("#dg").datagrid("reload");                    resetValue();                }                else {                    $.messager.alert("系统提示", "操作失败");                    $("#dlg").dialog("close");                    resetValue();                };          },            error: function () {                $.messager.alert("系统提示", "操作失败");            }        });    }

改动较大的则是登录模块的代码,登录页面样式改变,与后端的交互也完全修改,由原来的后端接受登录信息并进行逻辑处理最后控制页面跳转,改为前端通过js和cookie的操作来控制登录流程,后端仅作为接口提供者的角色。

<%@ page language="java" contentType="text/html; charset=UTF-8"         pageEncoding="UTF-8" %>    
perfect-ssm - 登录

13

欢迎使用 perfect-ssm

重置

function login() {    var userName = $("#userName").val();    var password = $("#password").val();    var roleName = $("#roleName").val();    if (userName == null || userName == "") {        alert("用户名不能为空!");        return;    }    if (password == null || password == "") {        alert("密码不能为空!");        return;    }    $.ajax({        type: "POST",        dataType: "json",        url: "/users/cookie",        data: $('#adminlogin').serialize(),        success: function (result) {            if (result.resultCode == 200) {                setCookie("userName", result.data.currentUser.userName);                setCookie("roleName", result.data.currentUser.roleName);                window.location.href = "main.jsp";            };        },        error: function () {            alert("异常!");        }    });}

页面的设计和美感与原来的项目并没有太多差别,这也是大部分朋友诟病这个项目的地方,由于暂时只是做一些功能性的实现和优化,因此页面的重构放在了后面的工作计划中,前端样式这次也只是修改了登录页面,其他页面并没有修改,因为这个阶段想要增加的是RESTful和缓存模块以及其他中间件的整合,至于页面重构会放到下一个项目中,目前的easyui会完全剥除掉,计划使用vue + ssm api实现一个前后端分离的实战项目。

控制权转变

这是我对这次代码改动的一点小总结:

修改前:
before
修改后:
after

从图中可以看出后端和前端的功能变化,后端由原来的大包大揽似的独裁者变成了接口提供者,而前端也不仅仅是原来那样仅处理小部分业务,页面跳转也不再由后端来处理和决定,整个项目的控制权已经由后端过渡至前端来掌控,后端所扮演的角色转变已然改变,目前虽然没有完全实现如图中的效果,因为页面和功能实在有些少,小小的改变并没有带来特别明显的冲击感,但是八字已经有了一撇啦。

前后端分离的展望

其实目前的项目中已经有了前后端分离的雏形了,比如登录流程,及文章详情页,都是采用的静态页面+RESTful来实现所有功能,

传统的开发模式中,前端开发人员一般只是简单地将UI设计师提供的原型图实现成静态的html页面,切切图、写写css、调调样式之类的,而具体的页面交互逻辑,比如与后台的数据交互工作、或者页面间的跳转,可能都是由后端的开发人员来实现的,前端十分的耦合后台。

甚至可能后台人员直接兼顾前端的工作,一边实现API接口,一边开发页面,两者互相切换着做,导致后台的开发压力大大增加,前后端工作分配不均,不仅仅开发效率慢,而且相互依赖严重,不能做到完全的并行开发,而且代码难以维护,前端如果只是做html代码,后端还需要参照着改,一旦改动则痛苦无比。

如上文中的图片所示,前后端分离的话则可以很好的解决前后端分工不均的问题,将更多的交互逻辑分配给前端来处理,而后端则可以专注于其本职工作,比如提供API接口,进行权限控制等工作,前端开发人员可以独立完成与用户交互的整一个过程,两者可以并行开发,不互相依赖,开发效率更快,而且分工比较均衡。

想法很多,这里就不一一列举了,待完成后再详细介绍吧,进阶篇中的文章还是更多的介绍后端的一些技术栈,前端的重构会在下个项目中实现。

结语

首发于我的,新的项目演示地址:,登录账号:admin,密码:123456

859549-20170808114423174-1554399166.png
如果有问题或者有一些好的创意,欢迎给我留言,也感谢向我指出项目中存在问题的朋友,本篇主要讲述了实现RESTful中前端部分的修改。

如果你想继续了解该项目可以查看整个系列文章,也可以到我的或者中查看源码及项目文档。

转载地址:http://pmjkl.baihongyu.com/

你可能感兴趣的文章
【redis学习二】多php版本下phpredis扩展安装
查看>>
【产品功能】弹性网卡支持私网多IP
查看>>
kvm 创建 基于glusterfs的存储池
查看>>
阿里云文件存储NAS开发测试环境最佳实践
查看>>
NASA公布“门户计划”,在月球轨道建立空间站进一步探索月球 ...
查看>>
jQuery 选择器 - 1
查看>>
什么是TensorBoard?
查看>>
HBase+Spark技术双周刊 第三期
查看>>
SIGIR阿里论文 | 一种端到端的模型:基于异构内容流的动态排序 ...
查看>>
一对一视频聊天app开发借助了哪些CDN的服务功能? ...
查看>>
Cloud Toolkit 1.1.0 支持 Command 清理
查看>>
【火热报名】1月19日阿里云栖开发者沙龙合肥专场:高并发企业级应用架构实践分享 ...
查看>>
特斯拉也裁员,马斯克长文诉苦:特斯拉太难了,真的没有办法!
查看>>
一对一直播的市场行情分析,潜力非常可观
查看>>
小白如何购买阿里云服务器(2019最详细教程)
查看>>
ORACLE中Like与Instr模糊查询性能大比拼
查看>>
redis config
查看>>
Linux基础命令---文本过滤colrm
查看>>
快速搭建react项目骨架(按需加载、redux、axios、项目级目录等等)
查看>>
GPU编程(五): 利用好shared memory
查看>>