自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 大文件上传源码,支持单个大文件与多个大文件

具体思路请参考我之前的文章,这里描述的是上传流程与源码。

2025-04-02 16:18:01 333

原创 大模型知识补充四

想象你是个厨师,做的菜与顾客期望的口味有差距。损失函数就像“顾客的评分”,分数越低(误差越小),说明你的菜越接近顾客的喜好。

2025-03-25 15:12:59 140

原创 大模型知识补充三

大模型知识补充三。

2025-03-25 13:59:53 200

原创 大模型知识补充二

知识补充

2025-03-20 16:59:21 284

原创 大模型知识补充

知识补充

2025-03-18 16:50:16 239

原创 文章表中文章内容content字段存富文本数据,在大量数据的前提下关于优化查询速度的思考

背景:Mysql中有个文章表,文章表中有个content字段,这个字段存的是文章内容,且这个文章内容是富文本数据。这个时候面临两个问题:(假如文章表中有2000万条数据)

2025-02-26 10:47:02 834

原创 20240925文章

大白话:把一坨数据,通过hash函数计算,映射成0或者1,存储到列表中。这一坨数据可能单个数据拎出来就很大,但是映射以后就成0或者1,确实很方便查询。我理解的是 ①先准备好查那些库 ②进行初步的过滤 ③再通过分组以及分组后的过滤进一步筛选 ④最后再排序等等。先使用筛选条件对B表进行筛选,筛选完成以后,再进行关联。where中的筛选条件:是先关联,关联成中间表以后再筛选。举个例子,我要在10亿级别用户中检查用户名是否存在?on中的筛选条件:是先筛选,再关联。

2024-09-25 14:57:56 317

原创 关于Mars3d的入门

ParticleSystem粒子对象 —》 粒子效果。漫游路线对象 —》 展示对象按照一定轨迹移动。视频融合对象 —》投射视频物体表面。通过json的格式创建图层,高效方便。矢量图层与矢量数据的用法。

2024-07-09 00:03:16 893

原创 关于GIS的概念方面在前端编程中的理解

地理坐标系统,其目的就是通过地理坐标系可以确定地球上任何一点的位置。

2024-07-06 11:30:34 389

原创 关于响应式编程的理解与SpringCloudGateway的理解

RxJava是一个可以在JVM上运行的,基于观察者模式 实现异步操作的java库。

2024-06-30 12:27:31 725

原创 微前端框架篇一,了解qiankun

微前端是一种将复杂单体应用拆分为多个小型独立前端应用,然后将这些小应用按需加载并集成到主应用的技术方案。每个子应用都有自己的 JavaScript 和 CSS 代码。单页Web应用(single page web application,SPA),就是只有一张Web页面的应用。所有页面都来回在这张页面上切换。所以很容易暴漏出来单页面应用的两个缺点。单页面SPA的两种路由形式:Hash与History本质区别:Hash:锚点。通过锚点跳到对应位置History:History栈。

2024-01-21 15:06:35 2136

原创 端杂七杂八系列篇四-Java8篇

Lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具。是Java 运行时候报出来的异常,一般是我们程序员写错了。是Java给你检查的异常,需要你手动try catch。用于定义工具类的时候,不用定义static的方法了。(unchecked exception)两种。(checked exception)和。,即 RuntimeException。在 Java 中,异常被分为了。,即 Exception。

2024-01-19 17:45:13 1037

原创 后端杂七杂八系列篇三

/ 定义事件,继承 ApplicationEvent 的类成为一个事件类@Data@ToString/** 该类型事件携带的信息 */// 监听并处理事件,实现 ApplicationListener 接口或者使用 @EventListener 注解@Slf4j@Component/** 使用 onApplicationEvent 方法对消息进行接收处理 */@Override。

2024-01-15 18:02:06 1129

原创 后端杂七杂八系列篇二

Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放。Redis 2.6 版本通过内嵌支持 Lua 环境。也就是说一般的运用,是不需要单独安装Lua。使用 Lua 脚本最大的好处是 Redis 会将整个脚本作为一个整体执行,不会被其他请求打断,可以保持原子性且减少了网络开销。

2024-01-15 14:33:55 1237

原创 后端杂七杂八系列篇一

Lambda 查询条件是通过 Java 的 lambda 表达式来构建的,它提供了更加灵活和可读性更高的查询条件构建方式。Lambda 查询条件可以与实体类中的属性进行绑定,并且能够自动推断属性类型,减少了代码的冗余。在方法上使用了 @CacheEvict 注解,表示在删除操作执行后清空名为 myCache 的缓存中的 key 为 id 的缓存数据。查询的时候(select):使用select * 就不是很好的操作,会遍历大量数据,造成性能问题。最好用的时候查,不用的时候不用查。二者之间的主要差别是。

2024-01-03 22:04:20 1327

原创 前端带你学后端系列 ⑦【网关】

客户端向反向代理发送请求,接着反向代理判断请求走向何处,并将请求转交给客户端,使得这些内容就好似他自己一样,一次客户端并不会感知到反向代理后面的服务,也因此不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。在之前的案例中,我们的路由都是写在配置文件中的,在微服务架构中,后台有很多个,如果每一个都需要配置,那么肯定是不现实的,所以Spring Cloud Gateway提供了基于注册中心服务发现机制的动态路由。这里还设置了缓存过期时间,对于状态码200的响应,缓存保留5分钟;

2023-12-20 11:57:32 1266

原创 前端带你学后端系列 ⑥【安全框架Spring Security篇二】

Spring Security

2023-12-18 13:50:09 979

原创 前端带你学后端系列 ⑤【安全框架Spring Security篇一】

Spring Security 是基于 Spring 的【身份认证】和【用户授权】,其中核心技术使用了 【Servlet 过滤器】、【IOC】 和【AOP】等。【身份认证】:用户去访问系统资源时,系统要求验证用户的身份信息。拿着登录网站的用户名密码和数据库的比对。【用户授权】:当身份认证通过后,去访问系统的资源,给用户分配角色进而权限。

2023-12-16 14:11:33 959

原创 前端带你学后端系列 ③【高并发JUC之篇二(基础补充篇)】

Java锁是一种多线程同步的机制,用于控制多个线程对共享资源的并发访问。Java锁的作用是保证线程间的互斥性(Mutual Exclusion),即同一时刻只有一个线程可以访问共享资源,从而避免多线程间的竞态条件(Race Condition)和其他并发问题。接下来,我们对几个锁进行一下介绍。

2023-12-15 15:33:03 947

原创 前端带你学后端系列 ④【分库分表】

MyCat是一个介于数据库与应用服务之间,进行数据处理与交互的中间服务。

2023-12-14 23:12:20 425

原创 前端带你学后端系列 ②【高并发JUC之篇一】

/1. 创建一个容量为 20 的线程池 ExecutorService executorService = Executors . newFixedThreadPool(20);// 3. 提交任务,由线程池中空闲的线程执行 // 模拟有100个任务 for(int i = 0;i < 100;i ++) {} // 3. 调用任务完成,关闭线程池 executorService . shutdown();

2023-12-14 22:27:41 1016

原创 前端带你学后端系列 ①【RocketMQ】

消息队列:我们可以简单理解成队列,用各种不同类型的传递方式,传递各种不同类型消息。

2023-12-14 15:38:48 1016

原创 前端带你学后端系列 ⑧【Nacos、Sentinel篇一】

Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理。Nacos 的关键特性包括:1.服务注册、服务发现服务注册:就是将提供某个服务的模块信息(通常是这个服务的ip和端口)注册到1个公共的组件上去。服务发现:就是新注册的这个服务模块能够及时的被其他调用者发现。不管是服务新增和服务删减都能实现自动发现。客户端向这个服务端发起http请求服务端接收到请求之后,会将这个instance实例加入到这个阻塞队列里面,然后客户端会异步的开启一个线程来读取这个实例以及实例的各个参数。

2023-11-14 10:18:23 678 1

原创 【今日文章】:Web浏览器的部分事件

/ 1.2 通过动画,配合使用【transform:translate(x,y)】,让小球移动。常见的应用场景:当页面【切换】的时候,浏览器为了保证自己的效率,会将【定时器】设置成1秒走一次。// 当页面切换的时候,浏览器为了保证自己的效率,会将定时器设置成1秒走一次.// 1.3 为了让小球连续的移动,我们需要获取小球的起始位置。// 需求:鼠标点击,点击到哪里,小球移动到哪里.//让动画,停留在最后的位置,而不是再返回回去。// 3.3 性能优化,把之前的动画清除。// 3.1 获取小球的起始位置。

2023-11-10 10:27:49 117

原创 【今日文章】:Web端常用的Observer监听器

/ 2. observer是当前MutationObserver的实例对象。这个Observer非常常用,常用于【图片懒加载】【下拉加载】【广告计费】等。// elem变化的时候,MutationObserver会监听到。// 比如【标签变化】、【子节点变化】、【属性变化】等等。// 1. mutationsList是发生变化的数组。// 这里填写的是,要监听的对象。// 【在这里进行业务操作】。与 浏览器窗口的交集。

2023-11-08 15:59:52 369

原创 【今日文章】:如何用css 实现星空效果

星星向上移动,且移动完成以后,没有“闪”一下的效果。这是常见的动画上面的需求,我们通常的做法就是。3. 写一个子元素,复制star, 当动画结束的时候,展示一模一样的子元素。1. 通过box-shadow中写多个偏移的阴影,就能形成星空效果。2. 星空是需要移动的,那怎样的动画效果才合理呢?不会出现动画“闪”一下的效果。最合理的解决方案是 "复制" 一份出来。如果是margin-left:auto,那是。这里我们需要知道,“星星”是怎么产生的。这个时候能上下左右居中的原理是,其次是星星的动画是怎么做的?

2023-11-08 10:04:32 1385

原创 【今日文章】:1.关于 $attr $lisenner $slot 用法的思考 2. 关于父子组件传值的思考 3.关于前端日志系统搭建的思考

/ 3. 子组件触发update:data,修改值并将值传递给父组件。至于存储数据就不详细描述了,劫持console和http请求即可。关于存储到浏览器本地,可以使用IndexedDB,这里推荐。//2.子组件复制父组件传来的值。定义:父组件传给子组件的数据。'我是来自父组件的数据'复制一份到data中。

2023-10-20 11:29:59 457

原创 纯css手写switch

2.定义switch的开关按钮:使用伪元素,给switch添加按钮。1.定义switch的背景:让span标签,填充满父元素,用作switch的背景。标签,就可以在隐藏input的时候,点击label触发选中事件,我们经常用这种方式来定义一些样式。前置知识二:正常来说,我们dispaly:none的时候,我们就不会触发隐藏元素的点击事件了。当input选中的时候,已经添加的伪类,颜色变白,且移动44px */概念:为处于某个状态的已有元素添加对应的样式,这个状态是根据用户行为而动态改变的。

2023-10-14 11:22:15 1076

原创 前置知识--Quartz

定义:JobStore是存放Job和Trigger的地方。因为我们需要被Scheduler调用的任务大多数并不是一次性的任务,而是需要被定时触发,或者某个时间点才能被触发的。1.可以在构建JobDetail的时候,传一些参数给Job对象。3.一种是名为TerracottaJobStore的模式,该模式不依赖数据库。触发JobDetails对象的时候,监听器起作用。简单来说,就是设置某个时间,该干什么事情。1.一种是基于本地内存的RAMJobStore模式。2.一种是基于数据库的JDBCJobStore。

2023-10-11 14:40:00 153

原创 原生JS-鼠标拖动

/ 1. 给被拖拽的div加上 onmousedown 鼠标【按下事件】。//结束的位置,减去鼠标点下的位置,那么得到的位置,就是div落下的位置。// 三. 全局监听鼠标的抬起事件。//记录鼠标点下的位置。// 2. div按下后,全局监听鼠标【移动事件】。//这里还需要加上 div当前的位置, 累加。// 2. 鼠标移动,div跟着移动。// 鼠标按下的时候,开始监听鼠标的移动。// 鼠标移动后,给div赋值。// 3. 全局监听鼠标【抬起事件】。// 二. 全局监听鼠标的移动事件。

2023-10-10 17:38:43 1348

原创 canvas 入门

/ textBaseline:决定了文本在垂直方向的对齐方式,可选alphabetic/top/hanging/middle/ideographic/bottom。// .textAlign:设置文本的对齐方式,可选left/right/center/start/end。//lineJoin = 'miter/round/bevel':设置线段连接处为默认/圆形/平直形式;来分隔画的线,防止样式覆盖。//lineCap = 'round/butt/square':设置线帽为圆型/默认/方形;

2023-10-08 17:52:12 110

原创 CSS 经典使用场景

谷歌版本高的浏览器,会把overflow: overlay;当成overflow: auto;比较好的解决方法是:el-scrollbar组件。其实非常简单,就是给文字的div加一个动画。让整体向左或者右移动。/* 当hover效果的时候,滚动条出现 *//* 父元素hidden */

2023-10-07 17:10:19 327

原创 Echarts 教程三

/x轴,y轴都写上这个即可show:true,},当然可以去掉网格线tooltip: {// 自定义tooltip样式,直接在formmater中写就行width:9px;height:9px;">' + params.name + ' ' + '案件数: ' + params.value + '';},

2023-10-07 08:45:00 671

原创 Echarts 教程二

前两者都可以用callback,用于自定义部分散点颜色,或者部分散点的大小。,把地图和散点图结合使用。

2023-10-05 11:23:05 150

原创 网站白屏优化

window.requestAnimationFrame(callback),接受一个函数作为参数,在浏览器下次重绘前执行,大约是17毫秒。比如要渲染当前页面,会很慢,页面上出现长时间的白屏,因为要渲染10000次child组件。Echarts图,白屏优化方案,可以使用骨架。使用按帧加载就不得不提到。我们提供的解决方案是。

2023-10-04 07:49:06 234

原创 Echarts 教程一

现在有两个手机,一个手机的屏幕宽度是375px,一个是750px,设计稿给我们的宽度是375px,那我们按照设计稿的设计在375px的手机上刚好完美匹配,但是却会发现在750px的手机上页面只有一半,空白了一半。dispatchAction:JS代码模拟用户行为(点击按钮,折线图某条高亮)。grid 其实就是图表离着Dom容器的距离,可以配置这个,来改变图表的大小。clear() :清除图表,setOpions()后图表展示。dispose():清除图表,setOption()后不展示。

2023-10-02 22:01:50 535

原创 CSS 相关

width:100%:即图片的自动缩放。在容器比图片宽得多的情况下,图片会被无谓地拉伸。通常设置一个较小的宽度(最大宽度),来保证不用宽度分辨率下显示一致。如果包含图片的元素(比如包含图片的body或div)比图片固有宽度小,图片会缩放占满最大可用空间。max-width:保证图片最大显示为其自身的100%(即最大只可以显示为自身那么大)。缺点很明显:分辨率很大的屏幕(4K),两边的空白会很大。两列布局:左侧一列宽度固定,右侧一列,宽度撑满父元素。设置:box-sizing:border-box以后。

2023-09-30 10:18:56 360

原创 Vue 复用方面

关于自定义指令生命周期(与组件的声明周期一致)created:在自定义指令属性绑定前。beforeMount:在挂载到DOM 之前。mounted:挂载到DOM的时候执行,最常用。beforeUpdate:在Dom更新前调用。updated:更新后调用。beforeUnmount:卸载前调用。unmounted:卸载后调用。el:所绑定的元素binding:通过自定义指令传来的值2.1 value:标签上的值。2.2 oldValue :上一次的值。

2023-09-27 14:41:45 174

原创 Vue2 常用用法

动画钩子函数的本质是副作用函数,就是触发动画的同时,还需要触发别的操作,这个别的操作就是副作用。可以在触发动画的时候,触发某个钩子函数,操作DOM。比如动画入场的时候,背景色是红色,动画出场的时候,背景色变成蓝色。2. attr 穿透的话,可以穿透多层,从父组件穿透到儿子组件,再穿透到孙子组件。loading动画的原理就是,每个字符都向上动,且有延迟时间。当子元素的数量变成四个,甚至更多的时候,我们发现,3. 子组件有多个根节点的,肯定是没法穿透了。封装了动画库,支持元素的进入与离开的过渡。

2023-09-25 14:14:22 192

原创 vue之封装tab类组件

JS方面代码已资源绑定

2023-09-14 23:11:32 451

原生JS-鼠标拖动,案例

原生JS-鼠标拖动,案例

2023-10-10

canvas 入门例子 11

canvas 入门

2023-10-08

Vue2 常用用法- flex + overflow:hidden

css - flex + overflow:hidden

2023-09-25

Vue2 常用用法- loading

css loading

2023-09-25

Vue2 常用用法-css flex布局遇到的问题

css flex布局遇到的问题

2023-09-25

vue之封装tab类组件

vue之封装tab类组件

2023-09-14

vue自定义指令合集 vue2.0版本

vue自定义指令合集。vue2.0版本

2022-12-17

空空如也

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

TA关注的人

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