Jquery微型架构:requestBody网络请求的模式与自定义协议的封装
来源:互联网 发布:淘宝茶具套装 编辑:程序博客网 时间:2024/05/18 00:13
我们在用html三剑客编写网站或者后台管理程序的时候,现在多数使用异步请求。如果使用jquery,异步请求很方便。
我们的项目,后台使用java springboot设计,统一套用了自定义的请求协议,方便各端进行模式化封装。请求方式也全部统一成了post请求,所有协议和请求参数,一级返回的协议和数据也都全部打包生成json,构建到RequestBody中进行发送。
我本来是做Android的,后来到新公司写java后台。按照我的习惯,我已经把相关的加够封装好了。出于兴趣,还有时不时会出现一些简单的做管理后台的需求,我也会接触html对网络的请求。于是我就做了一个html的基本架构模型。
一、首先需要创建项目,把项目程序的结构做一点规划。
二、需要导入一些必要的库。我爸需要导入的库放入baseimport.html文件进行了统一处理,减少了繁琐的操作,便于统一管理。
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script> <script type="text/javascript" src="../js/login.js"></script>
三、设计一个页面login.html
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <meta content="text/html;charset=UTF-8"> <title>登录系统</title> <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script> <script type="text/javascript" src="../js/login.js"></script></head><body><h1>登录</h1><hr><table> <tr> <td>手机号码:</td> <td><input id="username" type="text" name="userName" value="chris"/></td> </tr> <tr> <td>AuthCode:</td> <td><input id="password" type="text" name="password" value="gk123456"/></td> </tr> <tr> <td colspan="2"> <button id="login" style="width: 100%">登录</button> </td> </tr></table><div id="info"></div></body></html>
四、然后是一系列的js文件
1. properties.js文件,存放系统常量
var baseUrl="http://192.168.2.19:8080/"
2. bean.js文件,存放网络请求实体类,有了这个,以后的处理既简洁又方便
//请求体类var WebRequest = function (data) { this.token = ""; this.ver = ""; this.data = data; this.setToken = function (token) { this.token = token; } this.setVer = function (ver) { this.ver = ver; } this.setData = function (data) { this.data = data; }}//登录请求参数类var LoginParams = function () { this.name = ""; this.password = ""; this.setName = function (name) { this.name = name; } this.setPassword = function (password) { this.password = password; }}
3. jsonutils.js文件,进行json转换的工具类
// 把对象转换为jsonvar ToJson = function (data) { return JSON.stringify(data);}
4. requestutils.js文件,进行网络异步请求的工具类
// 把对象转换为jsonvar RequestBodyAjax = function (url, requestBody,callback) { $.ajax({ type: 'post', url: url, data: requestBody, contentType: 'application/json', }).success(function (data) { console.debug(data); callback(data); }).error(function () { alert("request failed"); });}
5.login.js文件,和login.html页面绑定的程序文件,这是本次封装的最后一个文件,也是最核心的一个文件。前面的所有封装都是为这个文件服务的。
//为页面引入实体类文件document.write("<script type='text/javascript' src='../js/properties.js'></script>")document.write("<script type='text/javascript' src='../js/beans.js'></script>")document.write("<script type='text/javascript' src='../js/jsonutils.js'></script>")document.write("<script type='text/javascript' src='../js/requestutils.js'></script>")$(function () { $("#login").click(function () { var userName = $("#username").val();//用户名 var password = $("#password").val();//密码 // 创建参数对象 var params = new LoginParams(); params.setName(userName); params.setPassword(password); // 创建请求体 var loginRequest = new WebRequest(params); //这里只是示范架构,token应该是登录之后获取的 //而且要写入到本地,方便各处调用 loginRequest.setToken("ttyyuuii"); loginRequest.setVer("1.0"); // 构建requestBody var requestBody = ToJson(loginRequest); // 构建请求回调 var callback = function (data) { $("#info").html(data); } // 发起异步请求 var url = baseUrl + 'getUser'; RequestBodyAjax(url, requestBody, callback); });});
五、运行结果
阅读全文
0 0
- Jquery微型架构:requestBody网络请求的模式与自定义协议的封装
- Vue微型架构:requestBody网络请求的模式与自定义协议的封装
- swift 面向协议的网络请求封装
- 自定义UI 网络 请求类的封装
- 使用NSURLConnection的网络请求与封装
- 网络请求的封装
- 封装的网络请求
- 网络请求的封装
- 网络请求的封装
- ASIFormDataRequest 网络请求的简单封装之soap协议
- ios自定义异步post网络请求的封装
- 网络请求的封装方法
- 各种网络请求的封装
- HttpURLConnection网络请求的封装
- Xutils3网络请求的封装
- Xutils3网络请求的封装
- 封装OkHttp的网络请求
- (MSOA)微型面向服务的架构的设计与实现
- 动态链接库之 显式调用——vs手把手演示
- 判断素数的正则表达式
- DB2时间函数
- 献给写作者的 Markdown 新手指南
- SSh搭建问题-commons-lang版本问题;
- Jquery微型架构:requestBody网络请求的模式与自定义协议的封装
- 子网掩码,网络号,主机号 计算问题。
- fileinput.js在上传文件时提交表单数据
- 再不会nginx你就out了
- 《A Sub-Pixel Edge Detector: an Implementation of the Canny/Devernay Algorithm》
- c语言List头文件和应用
- Struts学习03
- easyUI 显示加载中
- TCP传输图片及多线程