自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 虚拟列表实现

虚拟列表是一种优化网页性能的技术,通过只渲染可视区域内的元素来解决大量数据渲染导致的性能问题。它基于三个核心容器:滚动容器、占位层(撑开滚动条)和展示区(实际渲染内容)。实现方式分为固定高度和动态高度两种: 固定高度版本通过计算滚动位置确定显示范围,使用translateY调整位置 动态高度版本更复杂,需要: 预设初始高度并进行位置计算 使用二分查找快速定位滚动位置 动态更新元素实际高度并级联修正后续元素位置 最终根据最新高度调整总高度 关键点包括滚动事件处理、可视区域计算、缓冲区的设置以及动态高度变化时的

2025-10-27 17:32:04 334

原创 常见的排序算法

时间复杂度 O(n^2) 空间复杂度 O(1)选择排序的工作原理是在0~i的索引范围内去进行排序,将新增的数arr[ i ]一个个放进来排序,个人感觉有点类似于冒泡排序,但是和冒泡排序不同是选择排序是在小范围内找出最大最小完成一个小范围的有序,而冒泡排序是在整个数组中每次找到最大或者最小值i++) {//记录当前值//当前数组内移动指针//判断从索引0开始到现在的范围内比temp大的 相当于比temp大的数向前移动腾一个位置出来//在空出来的位置赋值temp//每次的数组变化。

2024-08-14 17:28:02 1563

原创 Web 项目性能优化

本文介绍了Web项目性能优化的多种方法,通过Google Lighthouse进行测试对比。优化重点包括:1)图片资源压缩,使用imageCompression工具减小文件体积;2)采用CDN加速静态资源加载;3)Nginx开启HTTP/2提升传输效率;4)字体优化,使用font-display:swap和精简字体包;5)Vite打包优化,包括按需导入、图片转base64、分包和CDN引入第三方库;6)配置Gzip压缩减少传输体积;7)SEO优化,通过vue-useHead动态设置页面元信息。这些措施显著提

2025-10-17 15:48:03 988

原创 解决el-plus弹窗重复的问题

在今天开发的时候遇到了这样一个问题 一个页面中有多个组件会向服务端发送请求信息 作者在拦截器中捕获了异常并利用el的弹窗去进行用户交互 但正因如此我的屏幕本应是一个el的警告弹窗却变成了多个 原因也很一目了然 在这个页面中多个请求在同一个时间点发送了401的请求 作者想到的解题思路是第一个请求一旦401就撤回其他请求 但是大部分请求都是异步的 这就导致不能及时撤回除第一个请求外的所有请求 在网上浏览的时候看到了一个绝佳的思路 – 从el的弹窗下手,

2025-05-29 21:34:54 324

原创 大文件上传

大文件上传的逻辑主要在于文件的分片和并发上传,在进行分片的时候我们要为文件添加md5哈希值以此来防止数据上传的数据丢失或者未上传,而计算md5是一个十分耗时并且cpu密集的任务,为了不占用浏览器主线程的资源我们可以利用js的多线程进行md5的计算,在文件分片完之后为了提高文件的上传效率我们可以试试并发上传。在分片结束之后我们就可以对分片好的小文件进行上传,并发上传主要为了提升上传的效率,为了控制上传的时机可以定义一个变量count以便监控线程完成状态,作者这里是等所有线程完成之后再进行数据的上传。

2025-05-29 21:33:32 662

原创 关于树的遍历

创建案例// 根节点为 1// 左子节点为 2,右子节点为 3 2 的左子节点为 4,右子节点为 5// 3 的左子节点为 6,右子节点为 7 4 的左子节点为 8,右子节点为 9 5 的左子节点为 10pre(root);mid(root);tier(root);int val;

2024-08-22 15:30:02 1003

原创 Spring 常见注解总结

spring中常见的注解

2024-08-13 16:04:54 346

原创 处理跨域headers的问题​

这样就可以获取了问题是解决了,但是原因是什么呢,为什么要在后台多写这一步呢?

2024-06-28 12:17:39 574

原创 Mybatis中 $ 和 # 的区别

就是问题的根源,我们都知道mybatis中有两种占位符方式,一种#{},一种${},他们都可以获取变量,区别就在于#{}可以做到预编译,会有数据类型的检验和安全检验。在使用mybatis的时候出现了一个问题,同样的sql语句居然在mybatis中查出来的和在mysql控制台查出来的居然是两个东西,原因是什么呢?所以上面的bug也就解开了,看似是两个相同的sql,但实际写出来是。首先来看看两边的sql语句(一个查询列的sql,列名是自定义的)$就是用来进行内容的交换,一般用于拼接字符串。

2024-06-28 11:09:40 293

原创 蓝桥杯复盘(java B组)2

从这里开始难度就飙升了,这个题目一开始想的是利用两个动态递归去寻找最优解,但是两个有关系的动态递归过于复杂了,在考完之后浏览了别人的做题思路发现可以逐个遍历情况,优先分配桌位,尽量每次都将人数填满思路:先分桌子,桌子一个一个分, 先分6人桌:3+3,4+2,2+2+2,3+2,4,3,2,尽量将6人桌分完,再分4人桌:4,2+2,3,2。

2024-04-20 10:47:01 616 4

原创 蓝桥杯复盘(java B组)1

蓝桥杯的1,2,3,8题复盘

2024-04-15 20:11:37 1401 2

空空如也

空空如也

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

TA关注的人

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