表格视图逻辑优化
现有逻辑梳理渲染(初始化)流程
初始化配置表中的字段。
将配置表中的字段转换为key、value、label形式,提供给AppExport、Apptable使用,Apptable中已经没有用到该字段,建议删除相关代码。
从cookie中获取该路径下是否有字段集合。
从/caches接口获取字段数据。
点击表格视图切换字段显示。
问题梳理
不能使用cookie作为字段本地存储的方式。
系统页面多,字段多,一旦超出cookie存储大小,数据将会丢失。
每次请求都将这么庞大的cookie放在请求里,对服务端是会有一定的影响的。
/caches接口存储也有时效性,对用户会造成困
2021-01-08
工作
使用browser-sync同步文章修改
前言之前一直使用的是hexo-browsersync用来同步刷新文章,但是当文章字数达到一定程度,自动刷新就会失效,并且样式也会丢失,这样用起来真的很不爽!之前一直以为是编译markdown时出现的问题,后来发现并不是——把hexo-browsersync卸载之后手动刷新不会出现这个问题。然后就动了自己安装browser-sync来同步的心思。
步骤
首先安装browser-sync:
npm install browser-sync --save-dev
这里推荐本地安装,运行时与全局安装的命令不同:
./node_modules/.bin/browser-sync xxx
文档里面有
2021-01-04
组件性能优化
表头筛选问题总结
表头筛选组件中的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