今天任务:
优化后台代码,简化前端js部分
收获:
1、
数据库部分表关联与左右连接的分别占用内存的问题,一下面的为例子
- SELECT * FROM 表a left joint 表b ON 表a.bid = 表b.id LEFT JOIN 表c ON 表a.cid=表c.id
- SELECT * FROM (SELECT * FROM 表a left joint 表b ON 表a.bid = 表b.id) as 表t LEFT JOIN 表c ON 表t.cid=表c.id
第一句会占用一个大笛卡尔积内存,第二句会占用两个笛卡尔积内存,根据需求会选用第一句。
2、
前端js在使用多种类似的函数的时候,可以把多个函数中相同的逻辑抽取出来,单独变成一个函数,将不同的地方抽取出来放到一个容器中,类似Map,数组,list等等。需要哪种函数就从容器取出值来执行函数
比如说现在要在页面上格式化多个字段,如下面例子
statusFormat : function(status){
if(status=="1"){
return "上架";
}
if(status=="2"){
return "下架";
}
}typeFormat : function(type){
if(type=="1"){
return "a类型";
}
if(type=="2"){
return "b类型";
}
}
可以简化成:
var formatArray =[["","上架","下架"],["","a类型","b类型"]]
dataFormat : function(type,key){
return formatArray[type][key];
}
需要格式状态的时候传type=0,需要格式类型的时候传type=1
3、每一个传到后台的参数都需要检验,检验,再检验,包括pageSize