自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【javascript】-【qiankun搭建微前端项目】

微前端是指存在于浏览器中的微服务,其借鉴了微服务的架构理念,将微服务的概念扩展到了前端。如果对微服务的概念比较陌生的话,可以简单的理解为微前端就是将一个大型的前端应用拆分成多个模块,每个微前端模块可以由不同的团队进行管理,并可以自主选择框架,并且有自己的仓库,可以独立部署上线。一般呢,微前端多应用于企业中的中后台项目中,因为企业内部的中后台项目存活时间都比较长,动辄三五年或者更多,最后演变成一个巨石应用的概率往往高于其他类型的web应用。这就带来了技术栈落后编译部署慢两个问题。

2024-06-23 18:43:08 936

原创 【leetcode】-【javascript】

请你编写一段代码实现一个数组方法,使任何数组都可以调用方法,这个方法将返回数组最后一个元素。如果数组中没有元素,则返回 -1。你可以假设数组是JSON.parse的输出结果。示例 1 :输入:nums = [null, {}, 3]输出:3解释:调用 nums.last() 后返回最后一个元素: 3。示例 2 :输入:nums = []输出:-1解释:因为此数组没有元素,所以应该返回 -1。方法一:将 Nullish 合并运算符与方法结合使用Nullish:空合并运算符(??

2024-06-02 17:35:27 522

原创 【前端】-【前端文件操作与文件上传】-【前端接受后端传输文件指南】

/ 进度条可以用axios的onUploadProgress方法,且发送切片时可以并行发送请求,后续可以自行优化。// 将切割后的Blob对象转成File对象(第二个参数是文件名),之后就可以上传切割后的File对象。// multiple的多文件上传其实很不友好,需要用户在选择文件时按住ctrl多选,否则就会变成单选。// 直接将转换结果赋值给img的src,设置src的大小即可获得浓缩图。//切片上传,在上传的时候进行切片,文件改变时只赋值。// 使用blob的slice方法可以切割文件。

2024-05-05 17:04:41 2610 1

原创 【前端】-【防止接口重复请求】

思路:延续方案二的思路,仍然是拦截相同请求,但这次我们不直接把请求挂掉,而是对于相同的请求我们先给它挂起,等到最先发出去的请求拿到结果回来之后,把成功或失败的结果共享给后面到来的相同请求。思路:对于同一个接口,如果传参都是一样的,一般来说都没有必要连续请求多次吧。问题:文件上传时,上传了两个不同的文件的,但只调用了一次上传接口。按理说是两个不同的请求,可为什么会被我们前面写的逻辑给拦截掉一个呢?问题:在目前项目的接口处理逻辑中还有一些局部Loading,就有可能会出现Loading套Loading的情况。

2024-05-01 15:32:22 954

原创 【vite】-【vite介绍】-【vite的基础应用】-【vite的高级应用】-【

开发时效率极高开箱即用,功能完备摄取丰富,兼容rollup超高速热重载预设应用和类库打包模块前端类库无关二、vite是构建工具的高阶封装,内部使用的是其他的工具,最核心的是rollup使用简单:配置项少,把能封装的配置都封装好了,不会让你非常深度的接触一些配置;内部集成devServe,不需要像使用web pack那样再加入devServe再配置再使用;快:得益于他的底层架构设计便于扩展:兼容rollup插件rollup比webpack发布早,使用率高,社区成熟,插件多。

2024-04-06 12:23:14 1031

原创 【组件封装】-【vue组件设计经验技巧】

组件封装其实就是扩展性和便捷性的权衡,组件写死的部分多了,便捷性提升了,但是扩展性下降了,组件内很多内容依靠父组件传入,那么扩展性增强了,但是便捷性下降了。

2024-04-05 22:35:26 1207

原创 【前端】-【性能优化常识】

页面一打开的白屏时间,主要是由资源加载(耗时多)、JS执行造成的,在这段时间里,如果没有做骨架屏的话,页面都是白屏。JS执行完成后,已经知道页面要渲染什么了(此时页面已经能看到一些东西了,但是还不能看到完整的页面),就开始渲染页面,进行数据请求和DOM渲染。手段:按需引入配合tree-shaking可以极大的减少代码体积,一一排查项目中老版本的库,把他们升级为可以支持tree-shaking的新版本的库,优化了项目体积,加快首屏渲染。2.3.5 区分请求粒度,减少请求范围,也能减少更新。

2024-03-26 13:30:59 1689 2

原创 【css揭秘】

还可以使用border-radius所对应的各个展开式属性:border-top-left-radius、border-top-right-radius、border-bottom-right-radius、border-bottom-left-radius来指定各个角的大小。:针对容器某个角对背景图片做偏移定位,比如让背景图片跟右边缘保持20px的偏移量,同时跟底边保持10px的偏移量,如下图所示:(背景图片即虚线框框出来的范围)(描边)属性来产生外层的边框,如果想得到上图【双重边框的效果】,

2024-01-28 00:04:47 1199

原创 【vue3】-【pinia】-【组件间通信】-【插槽】-【组件间通信】-【插槽】-【API】

一、第一步:二、第二步:操作存储、读取数据一、是一个保存:状态、业务逻辑 的实体,每个组件都可以读取、写入它,它有三个概念:、、,相当于组件中的: 、 和 。具体编码:具体编码:二、组件中使用中的数据修改数据(三种方式)代码:在组件中的三种修改方法:storeToRefs看上面的代码发现,在模板中使用里面的时,都需要写我们能不能通过解构赋值将要用的数据从countStore中取出来,在模板中使用的时候直接写、、:,会发现在模板中使用的、、并不是响应式的,因为是新创建的变量,并不是

2024-01-16 21:58:43 544

原创 【vue3】-【setup】-【ref()】-【reactive()】-【computed】-【watch】-【props】-【生命周期】-【自定义hook】-【路由】

在终端输入以下命令,根据自己的需求做出相应的选择:生成的项目文件作用:setup概述在前被执行setup的语法糖setup()每次都要返回一个对象才能让使用,于是vue3提供了语法糖来改善这一现象:那这样又会出现另一个问题:有两个标签,我们可以使用如下插件并在vite.config.ts中引入插件将代码优化为:ref()创建响应式数据一、vue3使用和让数据变成响应式数据,其中,既可以定义基本类型的响应式数据,还可以定义对象类型的响应式数据,而只能定义对象类型的响应式数据二、语法:

2024-01-02 17:31:44 517

原创 【小程序】-【

swiper是滑块视图容器。其中只可放置组件。

2023-12-13 17:45:59 377

原创 【git教程】

一、SVN是集中式的版本控制系统,。干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。缺点:必须联网才能工作二、Git是分布式版本控制系统,没有“中央服务器”,每个人的电脑上都是一个完整的版本库。假如你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

2023-12-07 11:59:17 1010

原创 【前端】-【electron】

electron技术架构:chromium、node.js、native.apis需求:点击窗口右上角的三个图标,分别执行相应操作index.html代码如下,红框中为三个图标的代码// 创建窗口nodeIntegration:true,// 允许渲染进程使用node集成环境contextIsolation: false,// 如果nodeIntegration:true失效,那么需要添加这行代码enableRemoteModule:true//允许使用远程模式},

2023-12-01 18:16:20 1517

原创 【小程序】

app.js、app.json(入口文件,必须有,没有项目运行不起来)、app.wxss不能改名,是应用程序级别的文件,在这里面写的代码全局生效,page里面的那4个文件是页面级别的,在里面写的代码只在当前页面生效,page里面写的代码是针对页面的,所以会覆盖全局的配置。小程序的页面放在pages文件夹下,在app.json文件中指定哪些page是页面。project.config.json:当前项目的配置。wxml:页面骨架内容,比如按钮。js:页面逻辑,如跳转。waxes:页面样式。

2023-11-29 22:48:01 249

原创 【Selenium】

比如,我们要模拟用户点击界面按钮, 自动化程序里面就应该 调用客户端库相应的函数, 就会发送 点击元素 的请求给 下方的 浏览器驱动。浏览器驱动 也是一个独立的程序,是由浏览器厂商提供的, 不同的浏览器需要不同的浏览器驱动。浏览器驱动接收到我们的自动化程序发送的界面操作请求后,会转发请求给浏览器, 让浏览器去执行对应的自动化操作。浏览器执行完操作后,会将自动化的结果返回给浏览器驱动, 浏览器驱动再通过HTTP响应的消息返回给我们的自动化程序的客户端库。我们的程序就可以知道这次自动化操作的结果如何了。

2023-10-23 21:28:52 177

原创 【接口自动化测试】

【导入从】中选择要导入的Excel文件,在【表】中会展示选中的Excel文件的所有sheet页,选择你要导入的sheet页,选好后点击【下一步】【字段名行】即指定字段名所在行,【第一个数据行】即指定数据起始行,确认无误后点击【下一步】在此处选择你要导入的文件类型,此处选择【Excel文件】后点击【下一步】【目标表】指的是数据库中的表名,可以改名字,确认无误点击【下一步】在此页可以修改字段名、选择字段、确定主键,确认无误后点击【下一步】在mysql中,右击【表】,点击【导入向导……

2023-10-11 22:26:34 49

原创 【python】-【操作excel】

所有数据访问出来不是json格式就是字典格式,我们如何将其解析为一个个字段?

2023-09-25 23:16:27 431

原创 【Java】-【使用jxl操作excel】

这是一个.jar类型的类库,这套API是纯Java的,并不依赖Windows系统,它集成封装了操作处理excel表格的一些类和方法。1.xls有多个sheet页,每个sheet页如下图所示,第一行为表名,第二列为字段值,现要判断该字段在该表中有值,有值则记为1,没值或字段不存在均记为0.在IDEA中点击file->project structure->libraries->添加下载好的jxl.jar。另存文件,选择Excel 97-2004工作簿或者97-2003工作簿即可。

2023-09-13 20:09:43 790

原创 【python基础】

如果要做 floor division 得到一个整数结果你可以使用 // 运算符5交互模式下,上次输出的表达式会赋给变量 _。12.5625113.0625113.06最好把该变量当作只读类型。不要为它显式赋值,否则会创建一个同名独立局部变量,该变量会用它的魔法行为屏蔽内置变量。除了 int 和 float,Python 还支持其他数字类型,例如 Decimal 或 Fraction。Python 还内置支持 复数,后缀 j 或 J 用于表示虚数(例如 3+5j )。

2023-08-13 23:00:25 414

原创 【Java】-【tomcat部署项目】

reloadable:表示可以在运行时在 classes 与 lib 文件夹下自动加载类包。在发布阶段应该设置为false,提高应用程序的访问速度。配置中可以去掉 path 属性,因为访问项目时的根路径只取决于 XML 文件的名称,访问该应用程序地址如下:http://localhost:8080/项目名。path:表示访问的路径,可以自定义,例如:http://localhost:8080/budaye。docBase:表示应用程序的路径,可以使用绝对路径或者相对路径,相对路径相对于webapps。

2023-08-07 19:13:13 545

原创 【JAVA】-【IO流】

复制文本文件也可以使用字节流,但是不要在内存中读出来,比如不要system.out()出来。

2023-08-06 21:46:44 181

原创 【SQL】-【计算两个varchar类型的timestamp的毫秒差】

TRANSTAMP3、TRANSTAMP2在Oracle数据库中的类型为varchar,但实际保存的值是时间戳timestamp类型,现在要计算二者的毫秒差。

2023-08-02 17:55:46 631

原创 【mysql】-【锁】

事务的隔离性由这章讲述的锁来实现。

2023-07-09 16:59:27 455

原创 【Java】-【IDEA 编译项目时报错:GC overhead limit exceeded】

错误是发生在编译阶段,而不是运行阶段。通过查询相关资料发现,怀疑可能是值太小了,设置成。

2023-07-03 20:09:29 1093

原创 【前端安全】-【防范xss攻击】

这样攻击者可以绕过后端的关键词规则,又成功的完成了注入。是恶意代码,因而将其执行。这里不仅仅div的内容被注入了,而且input的value属性也被注入,alert会弹出两次。公司需要一个搜索页面,根据 URL 参数决定关键词的内容。,虽然代码不会立即执行,但一旦用户点击a标签时,浏览器会就会弹出“XSS”。的值转换成小写,再比对,下文省略了转换成小写的代码。时,服务端会解析出请求参数keyword,得到。,会导致页面弹出两次弹窗,因为当浏览器请求。XSS 攻击是页面被注入了恶意的代码。

2023-06-17 21:14:14 2834

原创 【深度学习入门:基于Python的理论与实现】

图3-2将x1、x2、1三个信号作为神经元的输入,将其和各自的权重相乘后,传送至下一个神经元。如果这个总和超过0,则输出1,否则输出0,我们用一个函数来表示这种分情况的动作,引入新函数h(x),将式(3.1)改写成下面的式(3.2)和式(3.3)。如图3-4所示,表示神经元的○中明确显示了激活函数的计算过程,即信号的加权总和为神经元a,然后神经元a被激活函数h()转换成神经元y。刚才登场的h(x)函数会将输入信号的总和转换为输出信号,这种函数一般称为激活函数,用于决定如何来激活输入信号的总和。

2023-06-08 17:12:50 1271

原创 【无标题】

如式(1.11)所示,z关于x的导数由y=f(x)的导数和z=g(y)的导数之积求得,这就是链式法则。也就是说,只要能够计算各个函数的局部的导数,就能基于它们的积计算最终的整体的导数。用相应的神经网络来说明链式法则之所以可以实现反向传播就在于:无论我们处理的神经网络有多复杂(无论有多少层),都可以根据它们各自的梯度(的乘积)来计算输出层的梯度。这里我们想得到的是损失关于各个参数的梯度。根据刚才复习的链式法则,反向传播中流动的导数的值是根据从上游(输出侧)传来的导数和各个运算节点的局部导数之积求得的。

2023-06-04 22:32:41 580

原创 【MySQL】-【数据库的设计规范】

在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。可以理解为,一张数据表的设计结构需要满足的某种设计标准的 级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

2023-05-22 18:00:04 479

原创 【前端】-【前端发送Ajax请求下载文件的方法】-【解决乱码问题】

用户在页面点击导出后,根据用户在页面的输入,提交表单到后端,后端处理好之后调用人力系统的接口查询数据,人力系统将查询结果放在我们的服务器上,我们将该文件下载到用户本地。

2023-05-22 16:30:48 526

原创 【前端】-【Ajax请求成功,但是进不去access方法】

前端发送ajax请求给后端,后端收到,正常返回String,但前端ajax的回调方法success没有响应,反而进入了error方法。

2023-05-22 16:22:50 111

原创 【Java】-【XSSFWorkBook解析.xlsx的excel】

在POI中提供了Excel文件的两种实现类,HSSFWrorBook和XSSFWorkBook,前者适用于Excel文件的老版本,后缀名为“.xls”,而后者适用于后缀名为“.xlsx”。

2023-04-26 16:16:02 2077

原创 【Java基础】-【SpringMVC】

MVC是一种设计模式,在这种模式下软件被分为三层,即Model(模型)、View(视图)、Controller(控制器)。Model代表的是数据,View代表的是用户界面,Controller代表的是数据的处理逻辑,它是Model和View这两层的桥梁。将软件分层的好处是,可以将对象之间的耦合度降低,便于代码的维护。

2023-04-09 20:33:56 405

原创 【JAVA】-【问题总结】

查看源码发现DecimalFormat的format中有很多包装类,但没有String类和自定义类型,所以,它没办法解释格式化String类型的数据。因为方法在类中,new一下类创建类的实例,方法才会激活,才能被调用,而static修饰的方法是静态的,会先运行,不用生成实例对象方法就提前激活了,可以直接调用。解决方案:分别使用to_Date(‘中文格式’,‘英文格式’),to_timeStamp(‘中文格式’,‘英文格式’),会丢弃字符串末尾的空值,但不会丢弃字符串中间的空值,

2023-03-27 10:34:25 586

原创 【LEETCODE】-【MYSQL】

任何与 NULL 值进行的比较都会与第三种值 UNKNOWN 做比较。这就是为什么 MySQL 提供 IS NULL 和 IS NOT NULL 两种操作来对 NULL 特殊判断。由于无法直接用limit N-1,所以需先在函数开头处理N为N=N-1。注:这里不能直接用limit N-1是因为limit和offset字段后面只接受正整数(意味着0、负数、小数都不行)或者单一变量(意味着不能用表达式)where中不能使用聚合函数,要想使用聚合函数,使用group by,在约束条件having中使用。

2023-03-26 20:40:34 404

原创 【图解http】

但在移动互联网时代,我们常说的长连接并不是使用http的keep alive,而是基于 tcp 自定义协议,使用心跳机制(这里心跳间隔往往选择几秒,半分,五分等更高频率),并且服务端也能推送数据,往往用于 im ,推送(如实时行情推送,Android 后台消息推送),因此要区分两者的长连接。发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服务器端就将该数字减1,当数值刚好减到0时,就停止继续传输,最后接收到请求的服务器端则返回状态码200 OK的响应。另外,也不允许返回任何实体的主体。

2023-03-25 16:28:46 588

原创 【mysql】-【事务】

事务时数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一执行,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。

2023-03-05 21:36:52 121

原创 【MySQL】-【索引优化与查询优化】

学员表 插 50万 条, 班级表 插 1万 条。创建往class表中插入数据的存储过程。建立索引前执行:(关注执行时间)步骤6:删除某表上的索引。保证每条数据都不同。步骤4:创建存储过程。步骤5:调用存储过程。

2023-02-22 20:01:44 167

原创 【mysql数据库】

的记录有两条,则此时SUM()的值将会是这两条记录的和,同理,使用Max()的值将会是这两条记录里面值最大的一个。在偏移量非常大的时候,例如 LIMIT 10000,20这样的查询,这时MySQL需要查询10020条记录然后只返回最后20条,前面的10000条记录都将被抛弃,这样的代价是非常高的。一个表中如有大量的索引,不仅占用磁盘空间,还会影响INSERT、DELETE、UPDATE等语句的性能,因为在表中的数据更改时,索引也会进行调整和更新。另外,以从表的角度来看,它们是具有多对一关系的。

2023-02-12 22:35:52 332

原创 【Linux常用指令合集】

vim分为三种模式:一般指令模式、编辑模式、命令行命令模式。解压缩也可以使用gunzip。

2023-02-12 00:02:51 359 2

原创 jquery监听隐藏input type=“hidden“输入框值的改变

问题:前端如果有input隐藏域,通过js改变隐藏域的值,无法触发change事件。原因:onchange事件在内容改变且失去焦点时触发,变化前后两次内容相等时不触发。解决方法:可以在改变隐藏域的值的同时,手动触发onchange事件。

2023-02-08 19:58:31 1858

空空如也

空空如也

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

TA关注的人

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