- 博客(42)
- 收藏
- 关注
原创 通过插件本地html跑webWorker
会出现上述现象的原因是因为worker遵循同源协议,我们在本地打开的页面采用的是file协议。这也是很多学习的例子都使用vue或者其他框架去展示worker的用法,其实都是利用了webpack集成的devServer,相当于在本地开了一个服务器。但是在学习web worker的时候用框架难免觉得有点麻烦。...
2022-08-29 11:22:01
1308
1
原创 函数式触发click和点击触发click在宏任务与微任务方面的区别
说一下自己的理解,在网上找了好久,并没有一个确切的描述这种结果产生的原因。上述两种结果的原因在于调用栈是否清空。也可以说是当前宏任务是否执行完毕。
2022-08-03 09:21:28
665
原创 根据组件类型与条件动态添加下拉框及选项
本次在做低代码平台时,遇见了一个稍微有些复杂的业务场景,需求描述:经过梳理后,其实逻辑看起来也不是特别复杂,不过当时确实是有点被难倒了,主要原因就是一些细节性的问题没有考虑到,然后流程图也需要去学习如何操作,时间上有些紧,同时也在思考如何写能够更便于维护。其次就是没有一个清晰的该处业务的流程思考,不过后来捋了捋也就差不多啦,所以说三思而后行啊。Logicflow和FromGenerator就不多说了,虽然也有点坑,但都是轮子,主要记录下这块业务场景如何实现的。处理JSON,不得不提一嘴ES6结构赋值,属实是
2022-06-22 11:21:32
1235
原创 hbuilder启动微信开发者工具失败问题汇总
检查步骤微信开发者工具安装位置打开hbuilder中的Settings.json运行=>运行到小程序模拟器=>运行设置找到 微信开发者工具路径,检查配置是否有误检查微信开发者工具端口号配置打开微信开发者工具,在安全选项里开启服务端口重点检查是否配置 appId如果上面的两步都没有问题,那么应该就是appid的问题了。首先要搞清楚的是DCloud的AppId和微信开发者工具的AppId是不一样的。微信开发者工具的AppId在manifest.json内微信小程序里面
2022-05-12 10:36:09
7682
1
原创 JavaScript中的垃圾回收机制
文章目录前置知识堆栈栈堆执行上下文与作用域链执行上下文作用域链一、JavaScript中怎么被定义为垃圾使用局部变量使用对象概括二、两种回收策略标记清理引用计数概括三、什么时候执行垃圾回收关于Chrome V8引擎的GC分代回收指针与活跃对象的区分回收的执行周期四、内存问题五、Es6 WeakMap参考文章前置知识堆栈栈什么是栈栈其实是一种数据结构,有着先进后出,后进先出的特性,用生活中的事物来理解最形象的就是汉诺塔了。我们在栈中存储的数据就像汉诺塔的盘子一样,最先放进去在最下面,最后放入的盘.
2021-11-08 22:01:14
1972
原创 命令式编程与声明式编程的区别
命令式编程与声明式编程二者的区别我们将通过js和vue写一个小案例来体会:基础页面结构<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, in
2021-11-03 20:27:45
777
原创 Chrome如何方便的卸载workService
学习webpack的时候用了下workService,按了个workbox插件。然后手欠,把浏览器里缓存清了,导致没有原文件,workbox一直提示,通过代码unregister已经不起作用了。在查阅network的时候,才发现该如何通过浏览器去操作。步骤打开控制台找到Application点击Service Workers找到对应的worker,点击卸载然后就不会再有提示了。8080端口终于清静了。...
2021-10-25 15:27:27
908
原创 组件通信的方式总结
组件通信的方式props$emit$listener 和 $attrs全局事件总线vuexprops父组件<template> <div> First <second :fatherMessage="fatherMessage" /> </div></template><script>import second from './Second'export default {
2021-10-24 18:10:40
141
原创 设计模式——代理模式
什么是代理模式代理模式为其他对象提供了一种代理以控制对这个对象的访问,是一个使用率非常高的模式。在我们的生活中,明星的经纪人,游戏的代练,其实都是代理模式的一种表现。简单来说,代理模式能帮被代理对象省掉不少麻烦,也可以为被代理对象提供保护,避免他人直接访问。保护代理保护代理用于控制不同权限的对象对目标对象的访问,但在 JavaScript 并不容易实现保护代理,因为我们无法判断谁访问了某个对象虚拟代理简单来说,就是把一些开销大的操作延迟到真正需要的时候才去执行。常见的虚拟代理有:合并HTTP请
2021-10-17 10:46:02
166
原创 设计模式——策略模式
什么是策略模式简单来说,所谓策略模式,就是在执行某一个任务时有多种选择,多种策略。我们需要根据不同的场景替换对应的策略。策略模式的定义是: 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换为什么需要策略模式当多个类只有在算法或行为上稍有不同时,为了便于维护,我们可以将其公共部分抽离出来。假如没有用策略模式,其不同的算法就需要通过if条件句来判断。后期再加新算法时,对应的判断分支也会增加,难以维护和阅读,且缺乏弹性。同时,算法是不断更新的,假如某天突然要更换算法,那维护起来更是麻烦,从
2021-10-08 09:47:38
285
原创 关于typeScript中接口的一些理解
文章目录前言一、文档说明示例及疑问点疑问点:在Control类内部,是允许通过SelectableControl的实例来访问私有成员state的。证明:要证明上述理解正确,只需要在Control类内部通过该实例访问其state属性即可不确定的地方目前的理解注前言在最近学习TypeScript中接口相关知识的过程中,遇到了一个让我十分困惑的地方。就是 接口继承类 这部分。文档上给的例子和他的解释看起来并无关系,在网上又找了好多,大部分都是照搬源文档,cv工程师,属实给我整不会了。在此记录下当前自己的理解
2021-10-05 22:46:05
289
原创 算法——双指针的解题思路
双指针定义指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。双指针问题的一般特点数组有序减少遍历两种方法对撞指针对撞指针要求我们将左右指针分别指向左右边界,通过移动左右指针遍历数据。退出循环的条件:left<=right比较通用的模板:function model(ary){ var left = 0; var right = ary.length-1;
2021-09-26 20:08:47
168
原创 理清楚Commonjs中的缓存
文章目录前言一、网上不是很清晰的证明二、如何理解缓存从Node模块的引入过程理解缓存总结前言最近在看commonjs规范时,提到了缓存这个东西。但是举的证明缓存确实存在的例子实在是含糊其辞,不知道缓存到底存的是什么,如何存的。于是就有了这篇文章,经过自己的验证,缓存确实是存在的,但是与其说是缓存,倒不如说require只加载了一次,导致后面获取到的都是第一次编译成功的require一、网上不是很清晰的证明// 1.jsvar cur = require('./2')console.log(.
2021-08-21 09:39:06
468
2
原创 如何编写出可维护性强的Css
文章目录前言使用Sass(★)构建一个良好的文件结构(★)7-1模式(不是7减1,是7杠1)7个文件夹1个main.scsscss分类方法规范的Css命名(★)BEM 命名注意点小写英文单词或组合命名样式优化(★)举例 line-height 如何优化方案1 声明时不带单位方案2 通过rem单位声明引出优化结论总结前言在做项目的过程中,我发现尽管还原出来了原型图上的要求,但是css代码一直都是一大坨的扔在了<style>标签里面,让人根本没有想看的欲望。尤其是,最近的一次项目中突然加了个换
2021-08-10 20:18:50
226
2
原创 设计模式——单例模式
学习了这么长的时间,设计模式却还是浅尝辄止,而且最近在回顾Vue知识的时候,发现了很多常见的设计模式:观察者啊,单例啊什么的。让我意识到,如果想要去读懂Vue底层的话,设计模式的思想是必不可少的。虽然是在学前端,但是准备通过java来学习设计模式,因为毕竟java是一个强类型的语言,通过java能更直观的去学习设计模式的思想。同时也会尽量去将设计模式通过JavaScript的方式实现出来。字面上来看,就是只有一个实例的模式。简单来说,单例模式就是在整个系统中,保持一个实例,不生成新实例的模式。当然并不是说仅
2021-08-09 10:38:46
899
1
原创 如何使用sass
文章目录前言使用编译器中sass插件的版本问题本地下载编译使用前言最近在学习sass的使用,然后就跟着官网一步一步去下载安装去了,后来想了想不对劲啊,之前用vscode也没有安装过sass也能使用啊?去网上搜了一下,这才发现,官网上说的使用和我想用的方法根本不是一个东西…在此记录一下各种坑吧。使用结合官网教程和个人学习来说,我觉得使用sass大体分以下几种使用途径:本地下载对比编译后文件进行学习通过编译器的一些插件直接在项目中使用,通过打包工具最后编译在项目中,我们通常是结合sass-
2021-08-08 16:22:16
512
原创 Vue中的虚拟DOM
文章目录一、什么是虚拟DOM二、虚拟DOM的作用提高性能三、通过模板转换成视图来理解一、什么是虚拟DOM我们都知道DOM是什么,它是实实在在的被渲染在页面上的,我们平时的操作都和DOM息息相关。那什么是虚拟DOM?首先,虚拟DOM一定是我们看不见的,我们看得见的都叫做真实DOM。虚拟DOM其实是Vue创建的抽象的DOM,是以一颗以JavaScript对象(VNode)节点为基础,用对象属性来描述节点的树。简单来说,就是一个js对象,至少包含了(tag)标签名、(attrs)属性名、(children
2021-08-01 17:38:37
1288
原创 js闭包经典问题的理解
文章目录JS闭包的作用错误示例引用和复制举例说明作用域闭包JS闭包的作用本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 闭包可以用在许多地方。 它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。2009年8月30日学习Javascript闭包(Closure) - 阮一峰的网络日志错误示例<body> <p class="myP">test</p> <p class="myP">t
2021-07-12 14:33:48
123
原创 Echarts常见问题整理
文章目录前言一、常见问题记录1.如何创建一个自适应的Echarts图表(动态给Echarts图表当前高度初始化+窗口缩放Echarts图表自适应)动态高度初始化思路一:通过css样式aspect-ratio(宽高比)解决思路二:通过在父组件dom操作获取当前高度clientHeight(只读),作为参数调用子组件方法,在子组件获取到当前高度后初始化。窗口缩放时图表内容自适应2.调整Echarts图表大小、位置、显示网格线3.柱状图根据x坐标数量动态判断柱状图柱条的宽度、防止x坐标过多导致重叠宽度问题防止x坐
2021-06-09 22:57:59
3342
2
原创 Echarts动态获取数据颜色丢失的问题
问题描述:使用Echarts饼图从后台请求数据时,请求成功后图表颜色丢失,变成纯黑色了。问题原因:visualMap: { show: false, min: 0,// 数据最小值的颜色明暗度 max: 600,// 数据最大值的颜色明暗度 inRange: { colorLightness: [0,1] // 表示颜色的明暗程度 } },出现纯黑的情况是因为
2021-04-19 15:35:01
1886
6
原创 java面向对象基础
类与实例类可以理解为一个具有被描述对象(们)自身(共有的)属性、行为的一个集合。比如说 狗类,就有尾巴,毛等属性,有吃骨头,吃粑粑等行为。放在代码里来看,就是尾巴和毛的变量以及吃骨头,吃粑粑的方法。实例化则可以理解为通过new关键字将该类从概念实例化为了一个存在的对象,狗本身是一个泛指(事物的概念),当我们new过了之后,它就是我们身边蹦跶的宠物犬了(具体的事物)构造方法又称构造函数,其功能就是对类进行初始化。构造方法与类同名,无返回值,在new的时候调用。class Dog{ private
2021-03-28 21:28:40
166
1
原创 VuePress快速上手(默认主题)
文章目录简要介绍安装vuePress步骤一:步骤二:步骤三:现有项目中使用 VuePress 管理文档,从此处开始步骤四:步骤五:步骤六:完善目录结构(满足基本需求)开启首页展示顶部导航栏LOGO顶部链接通过更改目录结构选择侧边栏样式一:展示全部 & 自动生成二:分页面展示Git 仓库和编辑链接页面滚动上 / 下一篇链接图片显示部署至GitHub Pages仓库准备打包项目说明/附录:说明适用范围:附录相关技术简要介绍VuePress是一个能够将我们编写的markdown文件转换为html文件的
2021-03-28 14:29:57
2581
4
原创 MySQL数据库操作补坑(八)插入、更新与删除数据
插入数据为表的所有字段插入数据不指明具体字段名INSERT INTO 表名 VALUES('值 1','值 2',...)表名:插入到哪个表值:表示要插入的数据需要按照标的顺序来判断列出所有字段INSERT INTO 表名(属性1,属性2,...,属性n) VALUES(值1,值2,...,值n)为表的指定字段插入数据INSERT INTO 表名(属性1,属性2,...,属性n) VALUES(值1,值2,...,值n)同时插入多条记录INSERT INTO 表名[属性列表]
2021-03-08 16:47:44
146
1
原创 MySQL数据库操作补坑(七)查询语句
基本查询语句基本语法形式:SELECT 属性列表 FROM 表名和视图列表 [ WHERE 条件表达式 1 ] [ GROUP BY 属性名1 [ HAVING 条件表达式2 ]] [ ORDER BY 属性名2 [ASC | DESC ]]属性列表:需要查询的字段名表名和视图列表:在哪个 表/视图 查询数据条件表达式1:指定查询条件属性名1:参数指定该字段中的数据进行分组条件表达式2:参数表示满足该表达式的数据才能输出属性名2:参数指定按该字段中的数据进行排序,排序方式
2021-01-23 22:25:33
378
原创 MySQL数据库操作补坑(六)触发器
创建触发器1)、只有一个执行语句的触发器语法:CREATE TRIGGER 触发器名 BEFORE | AFTER 触发器事件 ON 表名 FOR EACH ROW 执行语句BEFORE:指在触发事件之前执行触发语句AFTER:在触发事件之后执行触发语句触发事件:只触发的条件,其中包括INSERT、UPDATE、DELETE;FOR EACH ROW:表示任何一条记录上的操作满足触发事件都会触发该触发器执行语句:指触发器触发后执行的程序2)、创建有多个执行语句
2021-01-17 07:58:29
229
原创 MySQL数据库操作补坑(五)视图
视图简介是有数据库中的一个表或多个表导出的虚拟表。作用是方便用户对数据的操作。1)、视图的含义是一种虚拟的表,是从数据库中的一个或多个表中导出来的表。还可以从已经存在的视图的基础上定义。数据库中只存放了视图的定义,并没有存放视图中的数据。如果经常需要从多个表查询指定字段的数据,可以在这些表上建立一个视图。通过这个视图显示这些字段的数据。如果表中修改了与市图相关的字段的名称,可以通过修改试图爱解决可能引起的问题。MySQL视图不支持输入参数的功能,因此交互性上还有欠缺。但对于变化大的操作,使用视
2020-12-20 12:42:32
394
1
原创 java的加密方式
文章目录一、Base64介绍java实现用途二、单向加密介绍MD5(Message Digest algorithm 5,信息摘要算法)介绍实现用途SHA(Secure Hash Algorithm,安全散列算法)HMAC(Hash Message Authentication Code,散列消息鉴别码)一、Base64介绍对称加密。其实是一种编码格式,而非加密算法。会将8位的非英语字符转化为7位的ASCII字符。Base64编码后的文本,会比原文本大出三分之一左右。BASE加密后产生的字节位数是8
2020-12-18 19:30:20
1873
原创 前后端序列化的差别
文章目录前言前后端序列化的差别前端差别用途注意事项qsJSON后端差别用途注意事项serializable序列化机制解决的流化问题前言最近无论做前端项目,还是学习Redis,还是之前遇到的javabean实现serializable接口,都提到了序列化这个知识点,但是自己对这一块一直迷迷糊糊的,决定总结一下。前后端序列化的差别注意:前端讲的序列化和java中讲的序列化是有些差别的,这也是前后端都沾过而产生疑问的原因。前端差别前端的序列化指的是将对象转换为一定格式的字符串。比如:var a =
2020-12-10 14:40:37
930
原创 根据文件名找文件路径
文件名:Redis学习笔记.md方法:Win+R打开黑窗口输入dir/s/b 盘符:\文件名 ==>dir/s/b e:\Redis学习笔记.md找不到:更换盘符继续。注意:文件名要有后缀,jpg不能写为jpeg
2020-12-07 22:05:08
577
原创 MySQL数据库操作补坑(四)索引
文章目录索引简介1)、索引的作用和特点2)、索引的分类3)、索引设计原则创建索引1)、创建表的时候创建索引索引简介1)、索引的作用和特点定义:索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构。作用及特点:通过索引,查询数据时可以不必读完记录的所有信息,而只是查询索引。可以很大程度上提高数据库系统的查询速度,提高数据库的性能。不同的存储引擎定义了每个表的最大缩阴术和最大索引长度。所有存储引擎对每个表至少支持16个索引,总索引长度至少为256字节。索引有两种存储类型:..
2020-12-06 14:56:58
481
原创 MySQL数据库操作补坑(三)创建、修改、删除表
文章目录创建表语法形式细节设置表的主键1)、单字段主键修改表语法形式创建表语法形式CREATE TABLE 表名(属性名 数据类型 [完整性约束条件],属性名 数据类型 [完整性约束条件],...属性名 数据类型);表名:创建表的名称属性名:表中字段的名称数据类型:指定字段的数据类型完整性约束条件:是对字段的限制。如不符合,数据库系统不执行该用户的操作约束条件说明PARAMARY KEY标识该属性为该表的主键,可以唯一地标识对应的元组FOREIG
2020-11-01 10:03:20
218
原创 MySQL数据库操作补坑(二)操作数据库
文章目录操作数据库创建数据库删除数据库数据库存储引擎0)、MySQL存储引擎简介操作数据库创建数据库语法形式:CREAT DATABASE 数据库名;在创建数据库之前,可以使用SHOW来显示已经存在的数据:SHOW DATABASE;成功提示:Query OK,1 row affected(0.01sec) 含义为创建成功,1行受到影响,处理时间为0.01秒。4 rows in set表示集合中有四行信息。删除数据库语法形式:DROP DATABASE 数据库名;在数据库删除成功后,之前分
2020-10-30 09:30:39
986
原创 MySQL数据库操作补坑(一)数据类型
目录数据类型1)、整数类型吓一跳1.2.疫情期间数据库学的一直不是很好,后边发现别人都比自己会的多,现在来补补坑。数据类型1)、整数类型整数类型字节数无符合的取值范围有符合的取值范围TINYINT10~255-128~127SMALLINT20~65535-32768~32767MEDIUMINT30~16777215-8388608~8388607INT40~4294967295-2147483648~2147483647I
2020-10-27 17:43:45
511
原创 Maven学习笔记
什么是maven,有何作用Maven 是专门用于构建和管理Java相关项目的工具。功能最直观的感受是每个maven项目都有一个 pom.xml 文件帮助我们维护当前项目的jar包。便于统一维护jar包,在我们需要新的jar包时,只需要根据指定格式写在 pom.xml 文件内即可从本地仓库/官方提供的服务器中下载。...
2020-09-26 21:18:56
127
原创 JavaWeb上传图片到项目目录并将相对路径保存到数据库 踩坑
首先放出来成功的方法两个jar包:commons-fileupload-1.4.jarcommons-io-2.4.jar前端使用from表单提交图片HTML<form action="${pageContext.request.contextPath}/pictureServlet" method="post" enctype="multipart/form-data"> <input id="input" type="file" name="file">
2020-08-11 14:32:53
5360
4
原创 Ajax传递数据后台收到并处理后但是执行error的情况总结
0.格式书写有误。检查拼写,标点符号(data最后一个没有 , ),data格式。1.返回数据类型与dataType内设置的不一样。jquery ajax 方法中的 dataType 指定的是后台返回数据的类型ajax传递时默认为json。jquery1.4之后对json的格式要求非常严格,json格式错误也会执行error2.async同步或异步问题。async默认为异步请求(true),可以试着添加 async:false,3.url路径书写问题,不能加中文4.没有设置返回值。(
2020-08-02 16:40:05
666
原创 ER图基础画法简介
ER图介绍百度百科E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”或圆角矩形表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名,并用”实心线段“分别与有关实体型连接起来,同时在”实心线段“旁标上联
2020-07-18 20:17:08
22563
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人