自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何提高AI绘画的出图质量?

本人不喜欢细枝末节讲一堆,以下只说重点,如果有一些名词及操作不明白,可以去查对应资料(应该不多)。以上都遵守的话,那恭喜你,基本可以稳定高质量出图了。可以尝试进阶的cn以及各种lora。下面是模型地址,使用了夸克网盘,没用过的可装以下,非会员速度比百度良心得多。

2023-05-29 23:16:23 675

原创 AI绘画部署及模型推荐和下载

或者项目下,编辑webui-user.bat文件,将COMMANDLINE_ARGS内容改为'--medvram --opt-split-attention --port 6007 --no-half-vae'并保存,然后双击执行。如果机器ok,不建议使用xformers,这个东西大概可以理解为通过内存缓解显存不足的压力,效果是有的。但问题就是一旦装了这个东西,环境的问题就会很多,因为他对各个依赖的版本都有严格要求。下载好后,需要配置好环境,即python3.10..6,git,以及显卡对应的cuda。

2023-05-28 14:41:35 2163

原创 python监听一些特定端口的服务,如果检测到崩溃,进行重启。

保证监听运行在主任务,其余是开启的子进程。注意while里面的sleep了5s,是为了等待子进程启动完毕(否则子线程启动的过程中,监听还会继续,会导致启动一大堆服务!),这个写法还可以优化,欢迎大家帮忙。近期需要实现服务器上跑过个服务,然后供用户使用,由于内存及用户量的问题,总是隔段时间会导致某个服务被kill。人力重启实在是太熬人,所以写了段python来监听。这个是能检测并重启了,但是蛋疼的是,检测到并重启后,就把监听的服务挤没了。没法继续监听,属于一次性的,这肯定不是我们想要的。

2023-04-25 09:14:05 658

原创 记录wx.createOffscreenCanvas,离屏画布的坑property ‘getContext‘ of undefined

property 'getContext' of undefined,离屏画布,wx.createOffscreenCanvas

2022-03-15 15:58:01 1883

原创 vue-cli3及以上版本创建多页面应用。

为什么要多页面? 以实际场景为例,到了某个节日,需要根据需求做一个活动页,并且活动页技术体系和原本单页面一样(如vue),并且多端共用此页面(不能集成在原本的单页应用里了,太庞大)。那么我们要么是单独开一个项目,要么就是想办法将项目改造成多页面。介于前者太浪费资源且没必要(因为很多共用部分,甚至组件共用),所以我们选择将vue-cli改造成多页面应用。先摆一些小坑:1.无法通过路径访问多页面的某一页面,例如:http://172.16.10.181:8080/subPage.htm...

2021-07-22 16:38:30 949 2

原创 简单的通过nodejs批量处理excel。

首先通过npm下载xlsx包,他可以帮我们把excel格式的文件转换为我们熟悉的json格式。npm i xlsx -S/* 注:-S 为save,即无论是开发环境还是生产环境,都对此包有依赖(都存在);-D 为dev 即只在开发环境依赖*/引入模块和要处理的文件let xlsx = require('xlsx'); // 引入模块let workbook = xlsx.readFile('E:/project/nodeExcel/file/excel01.xlsx'); // 引.

2021-05-25 16:00:24 874 2

原创 js正则匹配范围的问题

直接摆问题:/[A-z]/.test('^')//true/[1-z]/.test('?')//true以上写法,本意都是想获取不分大小写的26英文字母或者加数字,但实际会匹配到一些符号。查了下资料,原来这个范围不是我们想象的顺序,看完顺序就明白了A-z为什么包含字符了。 [" ", "!", """, "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1", "2", "3...

2020-10-22 10:03:40 593

原创 【备忘】js实现 观察者模式 与 发布订阅模式

观察者与发布订阅的异同:1. 观察者简言之,就是多个角色间互相监听,也就是说,任何一个角色(对象)变化,其他的都可以知道。2. 发布订阅为,创建一个中心角色,其余角色的通信都经过中心角色进行。相同点: 都是角色间进行观察(通信,监听)不同点:观察者是所有角色互相观察(通信,监听),发布订阅则是在观察者基础上,由统一角色进行观察(通信,监听)。总结:观察者模式可以算作是发布订阅模式的超集(即观察包括发布订阅),发布订阅可以算是观察者的一个分支,但因其应用广泛,渐渐的被承认为一个单独的设..

2020-10-21 10:10:47 321

原创 js如何动态生成变量、函数并使用

在项目中,为了实现一个需求,走入了误区。然后实现了动态创建变量和函数这么个操作,想了想还是分享出来,有需要的盆友还可以参考下。目的:let a = 'x'// 根据变量a,动态声明一个名为x的变量 let x首先把坑列出来吧:1.利用window创建全局变量window[a] = 'xxx'// 结果就是利用了全局变量都挂载在window的特点首先我们并不一定希望创建全局变量,其次此变量若为一个构造函数的话,通过此构造函数声明的变量,最终的构造函数会是一个匿名函数。

2020-09-29 15:57:41 5044

原创 深拷贝的几种实现,以及注意的点。

一直以来,都在用深拷贝。但从没自己实现过,想着是挺简单的,其实动手做还是有点坑的。概念: 普通的赋值,如果是引用类型(object)的话,如果把a赋值给b,那么我改变b,a也会变化,这个是浅拷贝。深拷贝则是与之相反,赋值与被赋值的怎样改变,也不会影响彼此。这也是我们大多数时候想要的。原理: 之所以会出现深浅拷贝的情况,是因为普通赋值如果是引用类型,那么js并不会在堆栈中新开辟空间来存储,而是仅仅将其指向堆栈中数据,这样本质上其实最终无论操作被赋值或者赋值的变量,其实都相当于操作...

2020-09-29 15:12:41 979

原创 开发高阶vue组件时,打通父子兄通信,轻松调用任意父子兄的实例。

vue项目开发中,父子、子父、兄弟等等组件之间的通信总是很讨厌的,除了父子可以使用ref很简单的搞定,其余的都显得不是那么方便,这点放到开发高阶组件中体现的更明显。 例如,我们目标是开发一个类似锚点跳转效果的组件,结构期望大致如下:<anchor-scroll> <trigger-view trigger-key="xxx"> </trigger-view> <anchor-view anchor-key="xxx">...

2020-09-02 10:15:31 174

原创 记录一下,PC端实现拖拽操作需要注意的点。

一. mousemove并非逐帧监听,而是大概10-20毫秒触发一次。这个问题会导致:1.如果我们将鼠标移动事件绑在被拖动的滑块上,用户快速拖动会导致鼠标脱离滑块。所以将移动事件绑在body之类上会更友好。2.如果我们做了一些边缘限制,例如拖拽至边缘50px处便不可继续拖动。由于10-20毫秒鼠标可能移动1到30+ px的样子,所以只是普通做了个判断会导致我们超出一些这个限制,或者达不到这个限制就停止。二. 鼠标脱离滑块后的操作如果做了一些边缘限制,那么需要对鼠标脱离滑块后的一些操作进行

2020-08-26 15:14:09 516

原创 写一个简单基于vue的拖拽插件并发布到npm。

目的:1.任何元素,只需要插入v-drag即可拖动,2.可根据自定义属性控制结束拖动后是否吸附最近的墙面(屏幕边界)3.可根据自定义属性来判断pc与移动端,分别执行mouse事件和touch事件首先声明一个对象,并拥有install方法,然后将其暴露出去。不多解释,官方文档已经很明确了。const VDrag = {}VDrag.install = function (Vue) {}export default VDragVue参数是被use调用时传入Vue实例,我们的目标是

2020-08-21 16:58:35 461

原创 js中,微任务与宏任务的简单解析

大概整理了一下微任务与宏任务 微任务 宏任务 promise setTimeout MutationObserver setInterval requestAnimationFrame 其中requestAnimationFrame实际需求中我也没使用过,查阅了资料,解释为请求动画帧的api,应该也是挂window上的方法。首先,众所周知js是单线程...

2020-08-14 13:54:15 251

原创 简单实现函数防抖、函数节流

节流概念: 限制函数触发频率,规定时间内只能触发一次。代码实现:function Throttle(fun,t) { let timeout return function () { if(!timeout){ timeout = setTimeout(()=>{ timeout=null },t) fun(arg

2020-08-13 11:27:46 775

原创 常用的JSON数据操作汇总

开发小程序,vue项目,react项目等的出现,使得由传统的大量操作dom,改为了只操作数据就dom可以响应变化。所以日常开发中,接触最多的就是数据格式处理,在此记录一些常用的,并陆续整理:多个数组合并并去重:let a = [1,2,3,4,5,6]let b = [5,6,7,8,9,10]let c = Array.from(new Set(a.concat(b)))console.log(c)// [1,2,3,4,5,6,7,8,9,10]多个数组提取共同部分:le..

2020-08-12 15:57:42 378

原创 手写基础Promise构造函数

实现前,先总结下promise的基本特点:1.接受一个函数,函数的两个参数为两个回调函数,分别对应成功与失败。2.一旦执行了一个回调方法,那么内部状态则会变为对应的成功或失败,不可逆(一旦改变后,不会再改变,并且不会执行本身以外的回调函数)3.可以以then方法,实现链式的调用,接受两个参数,分别对应成功与失败以上三点基本为一个promise的核心了,具体分段解析都写在下面代码的注释中:// 创建pro构造函数 function Pro(fn) { // 声明相

2020-08-07 17:35:35 519

原创 继承中,this和原型链的区别

群里有小伙伴面试遇到这个问题,这个初学js的时候,大家肯定都有研究过。无奈现在大环境都是各种使用第三方插件、框架。导致很多基础的东西都有些淡忘了,在此进行简单的记录与解释。this继承最经典的当属利用apply与call这两个方法了,方法没什么区别,区别只在于参数是一个还是多个。function Human(name) { this.age = '14' this.sex =' boy' this.name = name}let people = {...

2020-08-06 17:00:28 256

原创 js中,为什么倒序for循环的速度大于正序for循环?

首先要说明的是,这个命题是不完整的,应该说是特定条件下倒序循环优于正序循环。在解决这个疑问前,我们先做几个小实验来证明一些事情:1.数值大小对计算加减法速度的影响 let number = 1000000000 console.time() for (let i = 0; i<10001;i++) { number-=1 } console.timeEnd()由以上一段简单的代码,我分别设置了10w与一亿(数值过小没测..

2020-08-05 10:20:31 1645

原创 generator个人浅析

本文无配图,无代码讲解,纯粹个人总结+记录对generator函数的理解:generator本意是一个js异步编程解决方案。ps: 根据它的特性也许一些特殊使用场景也适合使用。generator函数作为异步执行方案的优缺点:缺点是不写一个执行器的话,可读性极差,嵌套很多;优点是有了执行器后,代码非常直观,阅读上最接近于同步编程,并且代码量很少。ps:执行器是指可以让generator函数自动的调用至执行完毕,目前generator函数的执行器都需要yield后面为函数,这个勉强.

2020-08-04 16:41:24 375

原创 vue中keepAlive缓存清除的问题

vue项目中经常会用到keepalive来做缓存,在应付基本要求上可以说非常方便。但是遇到一个页面,根据条件不同,分别缓存或者不缓存,就有些麻烦了。首先先把坑列出来:1.<keep-alive v-if="xxx"> <router-view /></keep-alive><keep-alive v-else> <router-view /></keep-alive>网上很

2020-06-10 10:12:16 13338 6

原创 express中通过req.body获取值为undefined的问题

自己记录用。由于express处理返回值是通过一个中间件进行处理的(其实就类似把不规整的数据格式化再输出,也就是说未经过处理是没有body这个值的)。这个中间件就是:body-parser引入express后 就可以通过require引入 body-parservar app = require('express')(); //引入express库var bodyParser = require('body-parser');//用于req.body获取值的app.use(bo

2020-06-02 14:02:32 2405 2

原创 如何将数据导出为Excel

大家做过一些后台管理项目的话,估计对这个需求都不陌生,今天在此记录两种方法:1. 使用CSV格式实现(伪)首先要说的是,这个方法并不是生成真正的excel文件,而是可以通过其打开的CSV文件(excel通过操作后csv可转为excel)。这个格式其实就是一种用逗号分隔的文件,如下图:可以看到,都是逗号拼接的。这个实现方式好处就是简单,十多行代码搞定,不需要引入庞大的库。坏处就是这个...

2019-12-14 10:55:54 1092

原创 微信浏览器,网络请求状态码为0怎么办

在此记录这个蛋疼的问题,弄了半天才恍然大悟。 在真机的微信浏览器上调试项目的时候 ,发现所有的网络请求都失败了 。通过调试发现状态码都是0,于是从这个状态码开始排查问题。 首先要搞清楚0这个网络状态码怎么产生的(不是常见的300+,200+,400+)。如果请求已经成功发出,那么网络状态码就应该是我们常见的200+至500+。之所以会产生0这个状态码,是因为xhr...

2019-08-03 16:44:55 6977 1

原创 使用better-scroll做上拉加载需要注意的问题

使用better-scroll在项目中遇到过两个关于上拉加载的坑,在此记录下。1、 上拉加载完不再执行请求此时,应该是没有调用 finishPullUp() ,此方法是告诉better-scroll,分页还没结束,还要继续执行请求。 当返回数据为空的时候,就不必调用了,减少不必要的请求。2、请求到数据了,但是滑不动,只能在初始的那个范围滑动。此时,须执行refresh(),让...

2019-07-29 17:53:05 1403

原创 使用create-react-app时遇到Module not found问题

本来项目跑的好好地,然后install了一个axios,然后项目就挂了。 各种Module not found,路径不对。 期初以为是可能丢包了,又重新install还是不行,根据错误提示一个个删一个个重新install。 最后干脆重新建了个项目,但仍然不行。 这时候意识到了问题应该是出在create-react-app上:根据这个猜想,清空了packge卸载了全部model,重新instal...

2019-05-17 13:37:49 3364

原创 go语言中,遇到返回值不确定的时候怎么办

弱类型转到强类型,最不适应的莫过于所有东西都要声明好类型。 没有了自动识别处理那么舒服。下面来看一段我瞎JB写的代码:func GetGoodsData(userId string, goodsId string) interface{}{ if userId != "" && goodsId !="" { return goodsList } else { ...

2019-05-11 17:21:10 2348

原创 初次尝试使用beego创建api项目

首先用go get安装beego和beebeegogo get github.com/astaxie/beegobee(安装后把bee.exe拷贝到环境目录的bin文件夹中,不然会出现bee指令无效)go get github.com/beego/bee然后用命令生产一个api项目bee api beeapi不管那么多,先把项目跑起来再说(自带swagger这...

2019-05-09 15:25:03 1569

原创 js的filter遇到多维数组怎么过滤?

filter顾名思义是过滤的意思,对付一维数组的过滤十分好用,如:let data = [1,2,3,4]let newArray = data.filter((now)=&gt;{ return now&gt;2})console.log(newArray) // [3,4]但是多维数组咋办?  这样?let data = [{ a: [{re:true...

2018-09-28 16:00:56 15450 4

原创 常用官网整理

vue官网vue-climpvuevue-routervuex

2018-09-05 09:31:06 191

原创 代理解决跨域的原理

平常我们经常遇到的跨域问题就是,不同域名下的跨域。 那么问题来了,是怎么判断你与服务器不在一个域名下呢?通过chrome,我们发现原来我们的地址跟数据来源都是浏览器告诉我们的,然后它会判断是否同源,同源就正常访问。那么我们想解决问题就要从此处入手。 代理解决跨域原理:通过一些方法设置代理,在请求发送(接收)之前加入中间层,将不同的域名转换成相同的就解决了跨域的问题客...

2018-09-04 17:09:57 11205 1

原创 浅析js中的工厂函数,构造函数和原型链函数。

自己记录下对javascript的工厂函数,构造函数,原型链函数的理解,也顺便加深理解。 首先,说下工厂函数。顾名思义,就好比一个工厂一样,可以批量制造某种类型的东西。其实说白了就是封装了个方法减少重复工作,相信稍微有点码龄的人都懂。上代码:function animal (name,sex) { let obj = new Object() obj....

2018-09-03 10:13:59 4500

原创 python爬取文件后写入到本地,报编码错误问题

爬虫新手,初次尝试爬虫,发现爬取后写入本地出错,错误大概意思就是编码不对。首先这个并不是当前文件编码的锅,也就是第一行声明的,怎么改也不会有用的,其原因是windows下新建文件默认是gbk模式的,然后我们刚刚爬取的格式并不是gbk,所以导致写入出错,对此我们只需打开文件时声明编码格式即可#coding=gbkfrom urllib import requestreq = request.Re...

2018-06-03 01:35:42 699

原创 通过原生js实现复制文本

以前复制这东西都是通过flash,包括现在很多网站仍然在使用,一点击复制就提示您未安装flash插件,这个就多少有点不爽了。其实js也可以实现复制纯文本,是指需要借助input标签,如下://复制网站地址 copyUrl () { let oInput = document.createElement('input') // 生成一个节点 oInput....

2018-05-30 17:37:17 805

原创 vue lazyload最基础的使用

插件地址:https://github.com/hilongjw/vue-lazyload  图片懒加载基本原理就是,初始时统一将img的src设置为一张默认图片,当图片暴露在你的视线或者达到了你设定的条件,才将真正的图片链接填入img的src属性,从而达到节省性能的目的。 首先我们只是需要最基础的懒加载功能,所以仅仅简单使用的话是很简单的,如果项目有需要再去查阅文档,直接上代码:1. 安装...

2018-05-30 17:16:55 7362

原创 safari下页面无法滑动问题

  最近项目中遇到了个很蛋疼的问题,困扰了很久,甚至最后采取了模拟scroll的办法。首先是个基于vue项目,很多一些地方需要滑动,就直接用了overflow:auto或者scroll,比如这样本来吧,应该都是没什么问题的。我的手机是安卓的,所以开发时也都没问题,chrome上模拟的也没问题。 但公司测试的时候问题来了,居!然!划!不!动!了!阻止浏览器默认事件,取消定位,消除浮动。能想到的都搞了...

2018-05-30 15:49:16 15595

原创 一些比较好用的vue插件和日常插件整理,陆续添加

Vue-Awesome-Swiper功能强大的swiper插件(无限滚动,轮播)better-scroll强大的滚动插件,文档很详细,vue上很方便用。可解决移动端safari滑动问题mescroll十分强大的滚动插件,文档详细。丰富的api基本能满足任何需求,使用起来比上面的麻烦了些Feature.js对于pc的小伙伴来说,各种浏览器的特性烦得...

2018-05-28 10:28:29 1987

转载 解决navicat for mysql 连接数据库1251报错

前端菜鸟刚接触数据库,用navicat连接mysql的时候报了1251错误,在网上查了很多方法,但用了那些方法又报了1064; 最后这个解决了我的问题:因为比较新的mysql采用新的保密方式所以旧的似乎不能用,改密码方式:use mysql;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';F...

2018-05-04 09:41:24 2835

空空如也

空空如也

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

TA关注的人

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