组件性能优化
表头筛选问题总结
表头筛选组件中的el-tree数据过多,导致生成的DOM节点过多,引起客户端性能问题。
数据过多时全选反选失去意义。
经本机测试,当数据超过1000条时,关键字搜索会有明显的延迟,大部分客户的客户端性能都无法达到本机的水平。下图搜索腾讯,页面将有2秒以上的延迟。
优化目标
表头筛选组件实现秒开,反应速度应在50ms以下。
全选反选功能只提供给静态数据。
数据筛选时,本地检索实现实时反馈。
技术与实施方案
所有请求返回的数据采用分页请求,不再加载所有数据,数据量不超过100:
listOnly=1&listRows=100
区分静态数据和动态获取,动
2020-12-29
工作
hexo主题Fluid设置hide=true隐藏的文章在开发模式下显示
前言因为在blog中有写关于公司的一些文章,这些东西放在blog上好像不太好,所以不想在线上可以访问到,于是萌生了在开发模式下可以看,而在线上是隐藏的想法。
思路首先,根据Fluid主题的文档可以得知,控制文章显示的字段是hide,hide=true时,文章就不会显示在页面,但是开发模式下也无法看到,但是我在记录公司的一些工作计划以及一些自己写的文档时,我希望能打开多个页面查看,于是一个笨办法是先全局搜索hide这个字段,看它出现在了哪些地方:
可以看到,post-filter.js最符合搜索目标的要求,于是打开文件看看:
'use strict';
// 生成前过滤文章
h
2020-12-23
《你不知道的JavaScript中》读书笔记02
原生函数也叫JavaScript的内建函数。常用的有:
String()
Number()
Boolean()
Array()
Object()
Function()
RegExp()
Date()
Error()
Symbol()——ES6新加入
封装对象包装JavaScript会自动为基本类型值包装,所以像一些.length、.toString()的属性和方法,在基本类型被字面量定义之后,也能拥有这些方法和属性。
特别注意在封装数字和布尔值后,用来进行判断时,会有一些疑惑:
var a = new Boolean(false);
if (!a) {
console.log("
2020-12-21
你不知道的JavaScript
在阿里云轻应用服务上安装mongodb
阿里云轻应用服务器上安装mongodb安装步骤比较简单,直接省略然后是给数据库创建密码,因为外网需要连接。
首先需要给admin用户创建密码
mongo // 进入数据库
use admin // 切换到admin
db.createUser({user:"admin",pwd:"xxxxx",roles:[]}) // roles权限网上找
回车后会出现Successfully added user: {...},说明已经可以了。
# 下次使用命令行操作数据库时就需要验证了
mongo
use admin
db.auth('userna
2020-12-19
mongodb
qs序列化url请求参数
由于业务需求需要用到iframe来发送get请求,用来导出数据列表数据,客户会首先筛选出不同条件下的数据,然后在其中勾选多项进行导出,因此参数中会有id数组以及query查询条件数组,但是我们后端需要get请求中的数组要求是这样的:
id[]=1&id[]=2
query[]={a: 1}&query[]={b: 2}
在不知道qs之前,我是使用了Array.reduce方法来构造url字符串:
id = ids.reduce((acc, curr) => {
return acc + `&ids[]=${curr}`
}, '')
但是自
2020-12-11
qs
npm包发布以及删除流程
准备工作
首先在npm官网上注册 账号。
注册完成之后一定要验证邮箱,不然后面发布的时候会有403的err。
本地有node和npm环境。
初始化并发布自己的包
在准备发布的包中运行npm init,然后填写相关信息。
登录npm:
npm login
根据提示填写登录信息。
然后发布:
npm publish
使用自己发布的包npm install xxx@1.0.0
删除已发布的包npm unpublish xxx --force
删除的版本24小时之后才能重发!
发布72小时之内的包可以删除!
更新包版本更新包版本首先要更新本地版本号:
如果是打个补丁
npm
2020-12-08
npm
计算是否连续月份
需求最近项目有一个字段筛选需要选择连续的月份,它所有的值就是一年的12个月份——1、2、3...12,算连续有两种情况:第一种是年内的,就是不超过12月份;还有一种是跨年的,就是从今年的某个月份到第二年的某个月份,例如:11、12、1、2,这样也算是连续的。
解决步骤一开始是没有想到要跨年份的,所以很简单,给数组排个序,然后计算前一位减后一位的差是否等于1就行了:
function MonthIsContinuous(arr) {
const sort_arr = arr.sort((a, b) => a - b);
return !sort_arr.some((v, i, so
2020-12-07
算法