- 博客(15)
- 收藏
- 关注
原创 如何优化代码中的多层if嵌套
前言日常开发中经常要针对不同业务场景作出不同行为与判断,在最早接触的时候普遍都是使用如下代码进行业务区分:if(res.data.code===0){//do something}else if(res.data.code===1002){//do something}else if(res.data.code===1004){//do something}else{//do s...
2020-02-12 11:28:55
5201
原创 获取设备系统浏览器信息
function getOSAndBrowser() { var os = navigator.platform; var userAgent = navigator.userAgent; var info = ""; var tempArray = ""; if (os.indexOf("Win") > -1) { if (userAgent.indexOf("W...
2020-01-15 17:09:32
336
原创 前端处理java后端使用流文件传输方式显示图片
业务场景摈弃第三方图片存储,后端使用java语言开发,图片相关操作使用ftp的流文件传输方式,前端无法使用传统显示图片的方式来显示,需要对返回数据流进行编码处理;整体思路定义请求返回的数据流为二进制类型——对返回数据进行Uint8Array编码——使用String.fromCharCode()方法将Uint8编码的数组元素进行字符转化——使用数组的reduce方法累加数组元素拼凑成字符长串—...
2020-01-15 13:39:18
2859
1
原创 ES6实现操作两个数组元素并返回新数组
ES5时的做法假设现有array_one与array_two两个数组const array_one=[0,1,2,3,4,5,6]const array_two=[0,3,6,7,8,9]现在需要对两个数组进行元素比较并返回新的数组,以往都是这么做的//返回相同元素var array_new=[];for(var i=0;i<array_one.length;i++){//...
2020-01-03 15:12:56
2308
原创 vue无法检测数组变动的原因
前言在vue 2.x版本中,vue无法对数组的增加、删除等操作进行检测并派发视图更新。同理,对于已创建对象实例的属性增加、删除操作也会无法达到监听的目的,虽然对于诸如此类问题都有如$set、数组重构、主动通知vue更新等相应的解决办法。但是对于其产生原理,则需要从vue的响应式实现方式谈起。响应式原理在vue 2.x版本中,针对每一个对象的属性,都是采用的Object.definePrope...
2019-12-31 16:12:50
905
1
原创 使用electron打包vue项目成为应用程序流程及常见问题解答
为什么选择electron?版本兼容性当项目主体针对的医院、政府等单位,一般还在使用相对老旧版本的系统与浏览器,无法对vue框架、ES6等新特性进行支持时,使用electron将web程序打包成exe应用程序即可解决大部分的版本兼容性问题。除非摒弃现有技术栈转而回去写原生的代码,否则你大部分掌握的新语法、新特性与新技术都将得不到应用。混合化开发类似使用RN或flutter,采用跨平台开发而...
2019-12-25 14:28:56
930
原创 纯css实现电池波浪充电特效
实现原理:主要利用css的transform变换与animation属性,通过使用translate(x,y) 实现元素位移、rotate(deg) 实现元素旋转、@keyframes实现关键帧动画。css知识点附于本文底部。展现效果HTML部分:<div class="container"> <div class="header"></div>...
2019-12-25 11:32:10
2433
1
原创 2019年中级前端自检清单
Javascript:基本数据类型,基本类型和引用类型之间的差异;熟练运用es6提供的语法规范;熟悉基本数据类型对应的操作方法,特别是数组和对象;理解javascript基于原型编程的原理(这回事),理解原型,原型链;熟悉es5和es6实现继承的方式;理解作用域和执行上下文,能区分call,apply,bind三者之间的区别;了解闭包,能说出在js中对于闭包的定义(闭包是什么东西);...
2019-12-03 09:32:38
310
原创 Promise.all解决多个async/await串行导致的加载缓慢问题
1.问题起源源于某个线上小程序商城项目改造,项目需求为商城内的广告图及其点击跳转地址需做成可配置功能。设计思路:将广告图地址与跳转地址数据存于数据库中,通过对应管理后台进行配置。于是为了精确赋值,在源码内便出现多个async/await的串行异步请求,导致负载压力过大时出现加载速度缓慢的问题。2.解决方案使用Promise.all()方法将多个async/await封装并发进行,具体如下:...
2019-12-03 09:28:29
2621
原创 关于uni-app中的uni.createAnimation循环播放动画的问题
如图,在使用createAnimation的时候打算写一个setInterval循环播放一个图片上下移动的动画,在电脑上模拟iphoneX时能够循环播放,但是手机真机测试时只会播放一次。解决办法是调用translateY的值需要为随机值,即Math.random()。如果是准确的值就会导致无法循环播放,不太懂这个机制产生的原因,询问了官方也没有答复。...
2019-07-30 09:00:49
6637
2
原创 uni-app框架下布局与适配部分解决办法
1.父元素:position使用fixed,相对屏幕使用top、left百分比调整位置,background-size:100% 100%保证不同机型下背景框完全呈现;2.子元素:position使用absolute,字体使用upx,相对父元素使用top、left百分比调整位置。ps:难以调整时可根据uni-app的API获取当前容器宽高比得到屏幕宽高比,使用transform进行缩放。...
2019-07-19 16:40:13
10474
原创 MongoDB数据库备份与导入
服务器本地操作,导入:mongodump -h 127.0.0.1 -d 此处写数据库名 -o 此处写数据备份所在地址(mongodump -h 127.0.0.1 -d MC201901 -o C:\Users\x\Desktop\x_RJ\database)备份:mongorestore -h 127.0.0.1-d x --dir C:\Users\Administrator\Deskt...
2019-07-11 09:49:28
134
原创 MongoDB安装及配置
一、安装https://www.mongodb.com/download-center1.下载就完事。(有部分电脑在安装时会卡住进度条,这是因为在下载时勾选了mongodb compass,记得取消勾选!否则你就会在一个小时内盯着它一动不动的安装!)二、配置正常使用msi文件安装的mongodb直接启动bin文件夹下的mongod.exe程序即可,但是cmd关了mongodb的服务也就关了...
2019-03-25 17:48:48
125
原创 BeyondCompare简单介绍
发现一个针对没有使用git等工具的源码进行版本对比的工具——BeyondCompare,实测使用起来还是挺好用的。beyond compare为了方便码字,以下简称bc。 bc通俗来说就是一个比较工具,通常比较的内容有三种。1、电脑上两个目录内容2、ftp地址的内容与本地内容3、两个文本档案内容比较间的差异用颜色凸显出来,每种颜色代表的又是什么意思呢?1、黑色:左右两侧文件夹、内容一样...
2019-03-05 14:39:05
1955
转载 apply()的巧妙用法
(1)Math.max 可以实现得到数组中最大的一项:因为Math.max不支持Math.max([param1,param2])也就是数组,但是它支持Math.max(param1,param2…),所以可以根据apply的特点来解决 var max=Math.max.apply(null,array),这样就轻易的可以得到一个数组中的最大项(apply会将一个数组转换为一个参数接一个参数的...
2019-03-04 15:32:50
1129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人