自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 前端 RBAC基于角色的权限控制(按钮级别)

本文介绍了前端实现按钮级RBAC权限控制的核心方案。通过Pinia全局存储权限码,并提供hasPermission方法进行权限校验;封装v-permission自定义指令,根据权限动态控制按钮显示/隐藏;使用时前端控制展示,后端校验接口权限,确保安全性。该方案将权限判断逻辑集中管理,通过指令简化业务代码,实现灵活高效的权限控制。

2026-01-20 11:27:32 147

原创 大文件上传

前后端配合,前端进行文件切片,计算文件hash,作为与后端协作的唯一凭证,标明是哪个文件。需包含4个部分:切片索引,文件hash, 总分片数,分片的内容 {index,hash, total, chuck}。

2025-12-25 12:28:20 193

原创 JS(ES6+)基础

string,number, boolean, null, undefined, Symbol, BigInt

2025-12-17 15:57:35 371

原创 Vue响应式原理

当访问计算属性时会调用getter方法,拿到计算属性watcher,看看dirty属性是否为true,如果是true就执行计算函数计算值,并将dirty设置为false。同时让计算属性watcher中依赖的属性收集最外层的渲染watcher,这样当计算属性依赖的数据变化时会通知渲染watcher更新视图。计算属性依赖的属性变化时,会通知计算属性effect更新dirty, 并且计算属性会触发自己收集的渲染effect执行。计算属性会创建一个计算属性watcher,lazy:true表示懒执行。

2025-12-17 14:46:24 786

原创 实现template方法,替换模板中的变量

/ match是匹配到的<%= name %>, 是被替换的目标;// key是通过(\w+)捕获到的分组内容,如 name;// 回调函数的返回值会替换掉match对应的内容。问题:实现template方法,替换模板中的变量。实现:replace方法,正则匹配。

2025-12-17 14:25:07 147

原创 在1到N的数列中找出和等于sum的组合数

/js实现在1到N的数列中找出和等于sum的组合数。

2025-12-17 13:46:28 116

原创 前端js实现按添加顺序返回并发异步任务的执行结果

题目:N个并发任务,异步执行,按照任务的添加顺序返回执行结果,而不是谁先执行完返回谁,保证并发任务的执行顺序。// 一旦前面的结果都已就绪,就按顺序 resolve 对应的包装 Promise。// 维护一个 currentIndex 表示当前应返回第几个结果。// 使用一个队列(数组)来记录所有已添加的任务 Promise。// 每个 Promise 完成后,将其结果存入一个结果数组。给定下面的代码,要求实现ConRequests类。

2025-12-17 12:18:32 129

原创 移动端适配总结

插件转换:编写代码时都用px,编写完后,通过插件编译后转换为vw。单独制作手机端页面,通过rem/vw单位完成页面适配。Grid布局(二维,同时控制行和列,用于多行多列布局)一套代码通过响应式方案完成PC、平板、手机端的适配。弹性布局:flex布局(一维,主要用于一行布局时)设备像素比(DPR)=物理像素/CSS像素。代表:淘宝手机端、B站手机端、京东手机端。手机高清屏的出现,需要2倍或3倍图。设计稿和开发的关系(以375为例)代表:vivo官网,华为官网。PC和平板通过响应式适配。

2025-12-10 16:13:20 461

原创 前端性能优化

web核心性能指标: Google 定义的 Core Web Vitals(核心网页指标)用户体验:加载速度/视觉稳定性/交互响应性获取这些数据的方法:实验室检测:开发环境 chrome浏览器里的performance lighthouse具体步骤:1. 采集:通过页面探针去采集用户的性能指标,异常日志和环境信息2. 上报和分析:将数据上报到监控平台,通过数据的可视化和聚合分析,找到一些异常的位置和问题的共性。

2025-11-25 17:34:15 744

原创 JS事件循环和Promise, async/await

我们都知道JavaScript 是单线程语言。JS 最初设计用于操作 DOM,若多线程同时修改 DOM 会导致冲突(如一个线程删 DOM、一个线程改 DOM)。但通过事件循环可以实现非阻塞异步操作(如网络请求、定时器、DOM 事件)。

2025-11-25 11:18:42 655

原创 Webpack打包

资源处理 + 打包整合」,将开发时的 “非标准文件” 转为浏览器能直接解析的 “标准静态文件(js/html/css/图片)”,最终协同渲染出完整网页。

2025-11-24 16:47:08 570

原创 浏览器缓存

HTTP缓存(基于http协议请求头响应头)非HTTP缓存(LocalStorage/service worker)

2025-11-24 16:17:32 255

原创 前端实现动态路由

前端实现动态路由

2025-11-20 11:04:42 178

原创 mysql修改root用户的密码

1.出现:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)例子:mysql> set password for root@localhost = password(‘123’);格式:mysql> set password for 用户名@localhost = password(‘新密码’);格式:mysqladmin -u用户名 -p旧密码 password 新密码。首先登录MySQL。首先登录MySQL。

2023-10-18 14:29:57 908

原创 el-button添加浮动样式后点击无效

el-button添加浮动样式后点击无效

2022-12-07 17:16:06 2701 2

原创 OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443;error: RPC failed

OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443;error: RPC failed

2022-04-02 16:45:48 2335

原创 git fork使用流程

git fork1、fork项目在github页面上, 点击fork按钮, 将B的项目拷贝一份到A自己的代码仓库中.2、clone项目,并添加远程项目路径克隆A自己的代码仓库到本地.$ git clone https://github.com/A/A.git将B的项目作为最新代码的参考标准(upstream 是上游仓库的别名,别名随意命名)$ git remote add upstream https://github.com/B/B.git使用git remote 查看,可以看到有up

2021-12-24 09:50:48 21865

原创 JS高级总结

JS高级总结

2021-11-17 21:45:26 28

原创 JS基础总结

javascript基础,包括数据类型,数据/变量/内存,对象和函数

2021-11-01 18:15:07 24

原创 JS 模块化

JS模块化JS模块化CommonJSbrowserifyAMDdefine( id, dependencies, factory);require([module], callback);requireJsCMD seajs 官网已经不存在了ESModule浏览器加载defer与async的区别JS模块化在ES6模块化规范出来之前,有AMD,CMD,CommonJS等模块化规范。AMD和CommonJS都是运行时加载,ES6是编译时加载也叫静态加载。CommonJSnodejs环境下(服务器端)的J

2021-09-25 17:41:26 580

翻译 理解Docker “容器主机”和“容器操作系统”的关系

http://www.floydhilton.com/docker/2017/03/31/Docker-ContainerHost-vs-ContainerOS-Linux-Windows.html定义:容器主机(Container Host):也称为主机操作系统(Host OS)。主机操作系统是Docker客户端和Docker守护进程运行的操作系统。对于Linux和非Hyper-V容器,主机操作系统与运行Docker容器共享其内核。对于Hyper-V,每个容器都有自己的Hyper-V内核。容器操作系

2021-06-23 16:28:12 6190 1

原创 python+selenium点击input上传文件报错selenium.common.exceptions.InvalidArgumentException

browse = driver.find_element_by_id("ffdcFile")browse.click()报错:Traceback (most recent call last): File "D:/work/LCPSVN/DCSC/testProject/ffdcparsertest.py", line 19, in <module> browse.click() File "D:\Program Files\Python\Python37\lib\sit

2021-06-02 11:00:23 1753

原创 python线程进程协程

python线程进程协程

2021-06-01 17:44:57 39

原创 django-DRF学习记录

Django rest framework(DRF)

2021-05-20 17:59:33 344

原创 mysql学习记录

1.alter命令修改数据表名或者修改数据表字段2.查看MySql数据库物理文件存放位置mysql> show global variables like "%datadir%" ;+---------------+--------------------------------------------+| Variable_name | Value |+---------------+---------------

2021-05-08 18:02:52 157

原创 MySQL 时间类型 DATE、DATETIME和TIMESTAMP

1.DATE、DATETIME和TIMESTAMP 表达的时间范围TypeRangeRemarkDATE‘1000-01-01’ to ‘9999-12-31’只有日期部分,没有时间部分DATETIME‘1000-01-01 00:00:00’ to ‘9999-12-31 23:59:59’时间格式为 YYYY-MM-DD hh:mm:ss,默认精确到秒TIMESTAMP‘1970-01-01 00:00:01’ UTC to '2038-01-19 03:1

2021-04-29 17:07:01 1217

原创 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

问题:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?linux系统重启后,docker daemon守护进程没有启动,需要重启docker服务。解决方法:1.进入 /etc/docker,没有daemon.json文件就自己新建一个:cd /etc/docker2.编辑daemon.json文件,加入这段代码:{ "registry-mirror

2021-04-27 14:11:51 346

原创 Docker学习

1.Docker介绍1.1什么是DockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 是一种虚拟化技术,解决开发环境和生产环境环境一致的问题,通过 Docker 我们可以将程序运行的环境也纳入到版本控制中,排除因为环境造成不同运行结果的可能。1.2 Docker的核心技术核心思想:隔离Li

2021-04-26 17:42:34 239

原创 在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) 拒绝访问

【摘要】解决MySQL root用户登录被拒绝问题的方法:首先关闭MySQL服务,在my.ini文件末尾添加skip-grant-tables跳过权限验证,启动服务后若报错则执行mysqld --initialize-insecure初始化。然后无密码登录MySQL,更新root用户的权限设置,使用ALTER USER命令重置密码为"123456",最后移除skip-grant-tables配置并重启服务。该方法通过临时绕过权限验证完成密码重置,最终恢复MySQL正常登录功能。(149字

2020-12-16 14:43:46 82

原创 django-orm学习记录

初识django项目1.创建django项目django-admin startproject mysite #创建了一个名为"mysite"的Django 项目2.创建应用python manage.py startapp blog 3.启动项目python manage.py runserver 8080 python manage.py runserver 127.0.0.1:8080 #本机就不用写ip地址了 如果连端口都没写,默认是本机的8000端口4.setting

2020-10-27 17:05:06 194

原创 robot 接口测试-post request

四种常见的 POST 提交数据方式:1.application/x-www-form-urlencoded2.multipart/form-data3.application/json4.text/xmlpost请求需要在header中指定Content-Typeapplication/x-www-form-urlencoded和multipart/form-data的区别当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(n

2020-10-21 15:06:51 823

原创 前端预览pdf:PDFJS

没有使用<c:url>标签之前必须使用文档相对路径或是绝对路径对目标资源进行定位,如果使用根相对路径就会发生错误,具体详见J2EE中的绝对路径&根相对路径&文档相对路径 问题注意,但是在使用<c:url>标签的时候就可以以Web应用的根目录为参考点出发进行资源的定位,即根相对路径的使用....

2020-09-09 18:00:20 1958

原创 批量处理图片

1. 图片按尺寸/分辨率排序要求:只处理分辨率大于330的图片,所以需要按尺寸/分辨率对图片进行排序。win7可能用‘尺寸’,我的是win10用‘分辨率’。2.ps批量修改图片的尺寸大小https://jingyan.baidu.com/article/9f7e7ec0ecf9676f2815540a.html1、 首先我们新建两个文件夹,按需要命名好,一个文件夹放原图片,一个文件夹放修改好尺寸的图片。然后打开Photoshop,将原图片中的任意一张拖动到Photoshop的工作区域中;

2020-09-09 15:48:47 1760

原创 JS关闭当前窗口window.close()方法

过去,当直接调用window对象的close()方法,而不是对window实例调用close()时,浏览器会关闭最前面的窗口,不管脚本是否创建了该窗口。现在,出于安全原因,不再允许脚本关闭未打开的窗口。(Firefox46.0.1:脚本无法关闭尚未打开的窗口)1.直接调用window对象的close()方法window.close()当直接调用window.close()方法时,IE会弹出提示框,询问是否关闭此窗口。Firefox则不会关闭页面。Google则会立即关闭当前页面。2.wind

2020-05-11 11:25:29 25412 4

原创 jQuery绑定事件,dom刷新后绑定事件失效

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> <script src="jquery.min.js"></script> <script> $(...

2020-03-23 17:19:43 1534

原创 Nodepad++ Find result搜索结果窗口恢复

不小心拖拽notepad++的find result搜索结果窗口想把它固定在页面最底部,结果给拖没了。解决办法:1.打开文件,随便搜索一个内容,按F7,焦点就切换到了Find result。2.按Alt+Space,出现小窗口点击"移动"可以看到鼠标上有一个虚线框,在可视区内点击就可以把Find result窗口显示出来了。3.把Find result固定在Nodepad++的最底部的方法...

2020-03-17 14:08:48 15456 2

原创 CSS初识-定位Position

定位Position

2020-03-12 10:52:15 137

原创 正则表达式

正则表达式的两种写法:JS风格—new RegExp(‘a’, ‘i’)perl风格—/a/i字符串相关操作:search–字符串搜索substring–获取字符串charAt–获取某个字符match–获取匹配的项目replace–替换所有匹配split–分割字符串为数组正则中的option(可选项):i 忽略大小写g 全局匹配量词:+ 若干,匹配前面的子表达...

2020-03-10 15:49:45 272

原创 js手动触发事件

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>js手动触发事件</title> <script> window.onload = function(){ var oA = docum...

2020-03-03 17:38:11 2053

原创 js实现保存文件到本地-兼容各浏览器

先上代码:支持IE8+,Edge,Firefox,Chrome。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Save Test</title> <script> function save(f...

2020-03-03 16:26:35 3703

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除