- 博客(45)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 JS/html5前端合成语音(播报)
要在前端实现语音合成,即将文字讲述出来,一开始考虑用百度语音合成的方法,后来发现html5 本身就支持语音合成。就直接用html5的咯,百度的那个还有调用次数限制,配置还麻烦HTML5中相关的API实际上有两类,一类是 语音识别Speech Recognition,另外一个就是 语音合成Speech Synthesis,指的是“语音转文字”,和“文字变语音”。语音转文字var newRecognition = webkitSpeechRecognition();newRecognition.cont
2020-08-31 14:25:50
7241
5
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 OGP协议
Open Graph Data协议是一套Metatags的规格(简称OGP)用来标注你的页面,告诉我们你的网页快照。帮助社交app高效、准确的获取网页中核心的链接、标题、主图、正文摘要信息,使得该网页在社交分享中有更好的展现体验。
2020-08-29 10:15:37
2096
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Vue生命周期 created,mounted, methods , computed , watched
共8个阶段:创建前/后,载入前/后,更新前/后,销毁前/后
2020-06-11 10:46:51
3651
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SQL函数(多行合一/字符分解遍历)
一、多行合一行test表teonetwoSELECT '、' + te FROM test for xml path('') --查询结果:one、two
2020-05-16 16:31:25
248
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SQL存储过程基本基础语法
使用存储过程可以减少后端定时任务数,而且存储过程还简单易懂1、定义变量 DECLARE 定义的变量作用域是当前批处理(可用go结束)DECLARE @avarchar(32) --定义变量 相当于String aset @a='赋值’print ‘a:’+@aa:赋值2、循环计算1到100的和declare @a intdeclare @sum intset @a=1...
2020-05-08 14:06:39
528
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringBoot配置https(SSL证书)
最近在做微信小程序,所以https是必须条件SpringBoot2.x版本是不是这个小锁头莫名有点好看?嘤为很久以前就备案有域名,就直接申请了SSL证书,几分钟就下来了然后把tomcat目录里面的.jks文件复制到项目里面 key-store: classpath:server.jks key-store-password: 申请时设置的密码 keyStore...
2020-04-07 16:51:38
2077
8
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Id生成器(分布式自增长ID)
自己在用的一个ID工具类public class IdProduce { // 时间起始标记点,作为基准,一般取系统的最近时间(一旦确定不能变动) private final static long twepoch = 1585126508000L; // 机器标识位数 private final static long workerIdBits = 5L; // 数据中心标识位数 ...
2020-03-27 17:17:34
845
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 常用SQL函数、时间函数
常用SQL函数:1、SUBSTRING(CONVERT(CHAR(19), 字段, 120),1,10) 可将长日期切成一个19长度的字符串,看个人用处2、replace(字段,’-’ , ’ ~’) 把-替换成~,用于替换字段里的某些内容3、DATE_FORMAT(date,‘yyyy-MM-dd’) 依照指定的格式格式化日期date值MySQL的函数...
2020-03-26 17:15:06
442
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Vue项目相关
1 安装node.js从node.js官网下载并安装node,安装过程很简单,一直点下一步就ok了,安装完之后,我们通过打开命令行工具(win+R),输入node -v 命令,查看node的版本,若出现相应的版本号,则说明你安装成功了。npm包管理器,是集成在node中的,所以安装了node也就有了npm,直接输入 npm -v 命令,显示npm的版本信息。node的环境已经安装完成2 安...
2019-12-26 08:18:37
116
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 截取页面转图片保存到服务器
因为要做对账单,很难受<div id="dom"> <p>这里面的内容</p></div><script> // 生成图片 var canvas2 = document.createElement("canvas"); let my_div = $("#dom"); /*let style = w...
2019-12-20 17:46:59
335
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 SpringBoot集成JWT实现token验证(注解过滤)
由于开发需要,苦干一天,终于搞定!JWT的主要应用场景身份认证,一旦用户完成了登陆生成了token,在接下来的每个请求中包含token,可以用来验证用户身份以及对路由,服务和资源的访问权限进行验证。由于它的开销非常小,可以轻松的在不同域名的系统中传递,所有目前在单点登录(SSO)中比较广泛的使用了该技术。 信息交换在通信的双方之间使用JWT对数据进行编码是一种非常安全的方式,由于它的信息是经过...
2019-10-18 20:56:57
5590
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java虚拟机(JVM)
由于日渐习惯了加班,所以终于挤出一点时间来学习;昨天面试被问到虚拟机运行机制跟运行原理,今天立马爬起来mark 虚拟机为我们干了什么,具体是怎么干的。希望能够理解到一些初学时不懂的东西Java虚拟机是一个可以执行Java字节码的虚拟机进程,内部有一个类加载器子系统(ClassLoader),这个子系统用来在运行时根据需要加载类;根据需要在Java虚拟机执行过程中,只有需要一个类的时候...
2019-09-30 11:37:13
241
原创 微信小程序-抖音/字节小程序
微信小程序是小程序的鼻祖所以小程序几乎是和微信小程序技术通用的微信小程序项目转成抖音/字节小程序一 把wx替换成tt二 手机号授权api改成手机号授权必须上线项目才可以使用<button class='confirm' open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>// 绑定手机号getPhoneNumber(e){ console.log(e.detai
2021-09-03 16:24:45
2044
原创 mock常用占位
mock常用占位@cname 中文人名@id 身份证id@title 中文title@city 中文城市@ip ip地址@email email@url url地址@csentence(1,10) 生成1到10个字的中文句子@cparagraph 生成中文段落@string(10) 输出10个字符长度的字符串@float(0,100) 0 到 100 的浮点数@integer(10,70) 10 到 70 之间的整数@bo
2021-04-30 14:55:58
1078
1
原创 批处理:批量将当前目录想文件夹的子文件移出来
批处理:批量将当前目录想文件夹的子文件移出来 for /f "tokens=* delims=" %%i in ('dir /b /a-d /s "*"') do (move "%%i" "%%~dpi./../")pause
2021-04-19 14:19:47
3458
原创 高并发生成订单编号
/** * 高并发情况下获取订单号 * * @author cst * */public final class OrderUtil {private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");private static final AtomicInteger atomicInteger = new AtomicInteger(1000000);/*
2021-04-16 15:32:01
476
原创 JS运行机制与事件循环(Event Loop)
js是单线程的,确保了操作dom时不会有其它线程冲突;H5允许创建多个线程,但是子线程完全受主线程控制,且不得操作dom。注定只能是单线程的。js有同步任务与异步任务;在执行同步代码时如遇到异步事件,会将异步代码放到事件循环中,继续执行栈中的其它任务;同步任务:在主线程上执行的任务,只有前一个任务执行完,才能执行后一个任务异步任务:不进入主线程、而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程,异步任务可以执行了,该任务才会进入主线程执行因为js是单线程,所以加入了事件循
2021-04-10 08:59:13
277
原创 JS变量解析
JS是弱类型语言;1、var声明变量时,存在变量提升行为(将变量提升到当前作用域的顶部)。即变量可以在声明之前调用,值为undefined。并且可以重复声明,重复声明时如果赋值,其值会被刷新;不赋值,值还为之前的值(同一作用域内);2、let,const声明变量时,会生成块级作用域,用其声明变量后,使用变量将只会在此块作用域里寻找该变量。let,const声明变量时不会进行变量提升。3、const声明变量时必须赋值,并且值不能更改。(声明引用类型除外);var不存在块级作用域。let和c
2021-04-10 08:26:08
389
原创 微信小程序初始化&NPM
npm initnode_modulesnpm i miniprogram-sm-crypto --productionnpm i @vant/weapp -S --production修改 project.config.json"packNpmManually": true, "packNpmRelationList": [ { "packageJsonPath": "./package.json", "miniprogramNpmDistD
2021-02-21 21:25:24
801
原创 JS回文数
生成回文数getReverseNumber(num) { var result = []; for (var i = 10; i < num + 1; i++) { var a = i.toString(); var b = a.split("").reverse().join(""); if (a === b) { result.push(b); } }; return resu
2021-02-20 11:30:50
1208
原创 Vue集成高德地图
npm install vue-amap --savemain.jsimport AMap from 'vue-amap'; // 高德Vue.use(AMap);AMap.initAMapApiLoader({ key: 'f183ec7fc2b5d5175cac7f6xxxxxx', // 申请的高德地图 web key plugin: ['AMap.Autocomplete','AMap.Geolocation'],//plugin所要用到的模块功能,按需添加 v: '1.4.
2021-02-01 16:18:32
468
原创 mybatis调用存储过程(注解方式)
1、先创建存储过程2、Mapper @Select("{call 库名.newDispatch(#{testName,jdbcType=VARCHAR,mode=IN},#{testName1,jdbcType=VARCHAR,mode=OUT})}") @Options(statementType = StatementType.CALLABLE) void getTest(Test test);grant execute on 库名.存储过程名称 to 用户; --别忘了给
2021-01-27 11:09:03
683
原创 连接/映射网络位置/共享磁盘
win + r 运行 // 需连接的IP如://192.168.1.1如果有账号密码则输入,无则可直接看到对应文件夹,然后复制该路径,选择工具>映射网络位置 > 粘贴路径 完成 ;这时即可关联到本地
2021-01-23 15:06:44
2612
原创 vue自定义指令/全局指令
directives.jsexport default (Vue)=>{ Vue.directive('color',{ inserted(el,bind){ console.log(bind) el.style.color=bind.value }, update(el,bind){ console.log(bind) el.style.color=bind.v
2020-12-30 18:02:59
312
原创 SQL字段分隔函数
ALTER FUNCTION [dbo].[Fun_SplitStr]( @val VARCHAR(8000), --要分割的字符串 @split varchar(100) --分隔符号)RETURNS @temp TABLE(Result VARCHAR(100))ASBEGIN DECLARE @result AS VARCHAR(100); --定义变量用于接收单个结果 SET @val = @val + @split ; W
2020-12-28 17:35:56
614
1
原创 v-if 和 v-show
v-if :条件为true时,方才渲染v-show :无论条件是否true均渲染,只是为false时使用display:'none’
2020-12-28 10:47:26
104
原创 Doker
docker pull redisdocker imagesdocker run -p 6379:6379 -v $PWD/data:/data -d redis:3.2 redis-server --appendonly yes-p 6379:6379 : 将容器的6379端口映射到主机的6379端口-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的/dataredis-server --appendonly yes : 在容器执行redis-server启动命
2020-12-28 10:39:52
98
原创 Vue项目打包部署到服务器(Linux)
一、打包(build)npm run build也可以打包完成后项目路径会多出一个dist文件夹到这里本地的打包完成了然后到服务器二、服务器配置(nginx)注:如果已经有nginx环境了的话直接到第6小步1、查看gcc版本 gcc -v没有的话安装yum -y install gcc2、pcre、pcre-devel安装pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。yum install
2020-10-29 14:12:19
6496
原创 node安装
、下载安装包Node.js 官方网站下载:https://nodejs.org/en/选择操作系统对应的包:2、安装打开安装,一路下一步即可:r安装成功,文件夹结构如下,并在上面安装过程中已自动配置了环境变量和安装好了npm包,可以执行 node -v 和 npm -v 分别查看node和npm的版本这里就成功了...
2020-10-25 15:38:47
280
原创 前端优化(Vue项目优化首页加载速度)
玄学8秒!用户在访问网站时,加载时间超过8秒就会感到不耐烦,我自己尝试了很多个时间段,感觉2-4秒是比较舒服的(而且还能给人一种哇这个网站好高级的样子啊好快啊优化也太下功夫了叭 的错觉)。经过我的虚心求教 (不耻下问)之后,记录下几个提高加载速度的方法一、路由懒加载{ path: '/index', component: () => import('@/views/index'), //懒加载-访问该页面才加载 }这一步之后,打包后会发现很大的chunk-vendor
2020-10-22 11:08:31
2021
2
原创 验证码(短信验证)
选择用的是啊里的短信服务申请模板什么的就略啦添加依赖<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.3</version></dependency>accessKey在这获取accessKeyimport com.aliy
2020-09-10 16:41:38
1002
原创 Spring事件、异步监听
使用事件的模式可以对系统进行解耦,事件源发布一个事件,事件监听器可以消费这个事件,而事件源不用关注发布的事件有哪些监听器,这可以可以对系统进行解耦public class Mains extends ApplicationEvent { public Mains(Object name) { super(name); System.out.println(String.format("Hi,我是被监听的%s!",name)); }}@Comp
2020-06-29 15:04:37
982
原创 钉钉审批详情页面
钉钉审批页面模板钉钉没有提供审批页面的前端,So自己做了一个哈哈哈<div class="info"> <Avatar class="tuid" size="large" style="background: #3296FA">{{str(process_instance.originatorUserid)}}</Avatar> <div class="tuid"> {{ process_inst
2020-06-11 16:04:14
4744
原创 简易搜索(给匹配到的结果添加颜色)
<Button slot="append" icon="ios-search" @click="search"></Button>search() { var that = this; var num=0; $(".org-tree-node-label-inner").each(function () { if(($(this).text()).indexOf(that.value13) != -1){ $(
2020-06-04 15:41:57
404
原创 SQL datetime为1900-01-01 00:00:00.000
在sqlserver数据库中如果时间insert或者update为’ ‘时数据库会自动填写值为’1900-01-01 00:00:00.000’那已经存在的我们可以这样把这个值去掉update table set time=null where time= '1900-01-01 00:00:00.000'然后在insert或者update时空就不要操作这个字段就好...
2020-05-20 15:48:12
2998
原创 字符串是否存在某个字符(字符串处理)
1、contains() 返回布尔if(! str.contains("≈"))2、startsWith()3、indexOf()
2020-04-22 16:25:48
495
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人