前后端的冒失。

本文探讨了前端和后端开发的基本概念,介绍了JavaScript中处理数值运算的方法,并提供了Mybatis分页查询插件的配置示例,同时展示了如何利用layui进行表格数据展示。

今天发现自己前后端的知识内容还是特别的薄弱,有些以前常用的知识内容,都已经忘记了,现在用起来,如果不是自己搭建的框架的话,遇到一些问题很是慌张。

前端

前端 、客户端。([ Front-end、Client ])。

  1. 客户端是指开发面向客户的程序,多平台,比如Windows 安卓 苹果,还有游戏客户端也算一类。或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。
  2. 前端(Browser)指的网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括基本的HTML和CSS以及JavaScript/ajax,现在最新的高级版本HTML5、CSS3,以及SVG等。

JavaScript

获取数值进行 转换。parseInt 和 parseFloat 。2019-04-01。

JavaScript 中只有parseInt 和 parseFloat 。
一是:JavaScript 浮点数计算的 Bug 。
二是:跟计算机最终转换成二进制计算有关系 。

方法一:decimal.js (推荐)

下载地址 :https://github.com/MikeMcl/decimal.js
使用方法和说明都在 github 上

console.log(Decimal.round(3.17))  //3
console.log(Decimal.round(3.17, 0))  //3
console.log(Decimal.round(1.13265, -3))  //1.133
console.log(Decimal.round(3.17, -3))  //3.17
console.log(Decimal.round(1000, -3))  //1000
console.log(Decimal.round(0.1+0.2, -3))  //0.3
console.log(Decimal.round(31216, 1))  //31220
console.log(Decimal.round(31213, 2))  //31200
方法二:加减乘除的四则运算
加法运算

进行加法计算,首先要记录每一个数字的小数位数,记录小数位数为精确度,之后把所有数字根据精确度转为整数,加减法计算过后再除以精确度,得到更精准的数值。

  • JavaScript 中的方法,加法为“+”,减法为“-”。
function numAdd(num1, num2) {   
   var baseNum, baseNum1, baseNum2;   
   try {   
      baseNum1 = num1.toString().split(".")[1].length;   
   } catch (e) {    
     baseNum1 = 0;  
   }   
   try {  
       baseNum2 = num2.toString().split(".")[1].length;   
   } catch (e) {  
     baseNum2 = 0;   
   }   
   baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));  
   var precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2;//精度  
   return ((num1 * baseNum + num2 * baseNum) / baseNum).toFixed(precision);;   
}; 
// 举例 : numAdd(12.1,0.21);		最后的结果是 12.31 .
  • NodeJS 中的使用方法。加法为“+”,减法为“-”。
    在这里插入图片描述
乘法运算

根据字符串来计算,与加法类似,但是加法的精确度是按照数值的小数位置大小确定的,乘法则是按照全部数字的小数位数之和决定的。

  • JavaScript
function numMulti(num1, num2) {   
    var baseNum = 0;   
    try {   
        baseNum += num1.toString().split(".")[1].length;   
    } catch (e) {   
    }   
    try {   
    	baseNum += num2.toString().split(".")[1].length;   
    } catch (e) {   
    }   
    return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum);   
}; 
  • NodeJS
    在这里插入图片描述
除法运算
  1. 除法与乘法的运算更为类似,需要根据(除数的小数位数 - 被除数的小数位数)的精确度决定,就正如我们小学的时候计算除法的短除式是一个道理的。
  2. 最好使用 decimal 精确到几位小数,避免出现除不尽的情况。
  • JavaScript
function numDiv(num1, num2) {   
    var baseNum1 = 0, baseNum2 = 0;   
    var baseNum3, baseNum4;   
    try {
        baseNum1 = num1.toString().split(".")[1].length;   
    } catch (e) {
        baseNum1 = 0;   
    } 
    try {
        baseNum2 = num2.toString().split(".")[1].length;   
    } catch (e) {
        baseNum2 = 0;
    }
    with (Math) {
        baseNum3 = Number(num1.toString().replace(".", ""));   // 转为纯数字
        baseNum4 = Number(num2.toString().replace(".", ""));	// 转为纯数字   
        return (baseNum3 / baseNum4) * pow(10, baseNum2 - baseNum1);   
    }   
};  
  • NodeJS
    在这里插入图片描述

后端

后端、服务端。([ Back-end、Server ])。

  1. 后端部署在服务器上,是管理数据,为前端以及客户端提供数据传输的。
  2. 服务器端就是后端。服务端设置各种安全机制,拦截器、控制器等内容。

layui 模板

layui table 显示的数据。2019-04-01。

更多关于 layui table 的内容 https://www.layui.com/doc/modules/table.html

  • 后端返回的数据
@Data
public class TableData{
	private String msg;		// 解析提示文本
	private int code;		//	解析接口状态,规定成功的状态码,默认:0
	private List<?> data;	// 解析数据列表
	private int count;		// 解析数据长度
}
  • // 通过下图我们可以清楚的看出来,code 的值返回 0 ,才可以显示数据。code 值返回数据时,表格仅仅显示 msg 的信息。返回其他值时,显示的是数据接口异常。
    在这里插入图片描述
  • 在没有认真读 layui 文档的时候,我仅仅了解到 on 和 reload 的方法。其实还有很多方法如下图。
    在这里插入图片描述
layui table 进行分页查询。2019-04-01。

在这里插入图片描述
在这里插入图片描述

layui table 异步请求数据 --方法级别的渲染 2019-04-01

在这里插入图片描述

Mybatis

Mybatis 的 分页查询 插件 PageHelper
  • 在使用配置分页插件的时候,需要在 Mybatis.xml 的配置文件中添加插件内容。
<plugins>
    <!-- com.github.pagehelper为PageHelper类所在包名 -->
    <plugin interceptor="com.github.pagehelper.PageHelper">
        <property name="dialect" value="mysql"/>
        <!-- 该参数默认为false -->
        <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
        <!-- 和startPage中的pageNum效果一样-->
        <property name="offsetAsPageNum" value="true"/>
        <!-- 该参数默认为false -->
        <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
        <property name="rowBoundsWithCount" value="true"/>
        
        <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 -->
        <!-- (相当于没有执行分页查询,但是返回结果仍然是Page类型)
        <property name="pageSizeZero" value="true"/>-->
        
        <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
        <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
        <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
        <property name="reasonable" value="true"/>
        <!-- 3.5.0版本可用 - 为了支持startPage(Object params)方法 -->
        <!-- 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 -->
        <!-- 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值 -->
        <!-- 不理解该含义的前提下,不要随便复制该配置 
        <property name="params" value="pageNum=start;pageSize=limit;"/>    -->
    </plugin>
  </plugins>
  • 然后,在查询的时候将PageHelper.startPage(页数,条数);放置后的第一个 select 会进行分页查询。

数据库的过失

  1. 数据库字段与实体类的映射的过失
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值