解决MAC下MySQL忘记初始密码的方法分享给大家,供大家参考,具体内容如下 第一步: 点击系统偏好设置->最下边点MySQL,在弹出页面中,关闭服务 第二步: 进入终端输入:cd /usr/local/mysql/bin/ 回车后 登录管理员权限 sudo su 回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe --skip-grant-tables & 回车后mysql会自动重启(偏好设置中mysql的状态会变成running) 第三步: 输入命令 ./mysql 回车后,输入命令 FLUSH PRIVILEGES; 回车后,输入命令 SET PASSWORD FOR 'root’@’localhost' = PASSWORD('你的新密码'); from:https://www.jianshu.com/p/8afd7e179ff5
View Details苹果Mac系统常用快捷键有很多,但是很多童鞋对于这些mac快捷键都不是很熟悉,今天小编为大家整理了一份Mac系统常用快捷键大全,大家快收藏起来吧!平时在使用mac系统的时候可以提高不少工作效率哦! Mac中主要有四个修饰键,分别是Command,Control,Option和Shift。 这四个键分别有自己的图案,他们经常出现在Mac应用程序中的菜单栏里,方便你随时学习新的快捷键。 MAC 键盘快捷键符号图例 keyboard-shortcuts-symbol-legend.jpg 通用 Command是Mac里最重要的修饰键,在大多数情况下相当于Windows下的Ctrl。 所以以下最基本操作很好理解: Command + Z 撤销 Command + X 剪切 Command + C 拷贝(Copy) Command + V 粘贴 Command + A 全选(All) Command + S 保存(Save) Command + F 查找(Find) general.jpg 系统 Option 开机后立即按下,将显示启动管理器。 如果Mac装有双系统或者插有启动U盘,可在启动管理器中选择启动盘 Command + R 开机后立即按下,可打开OS X的恢复功能(Recovery) Command + Option + P + R 开机后立即按下,重置NVRAM。 有些时候电脑会出现些小问题,重置NVRAM是你除了重新启动,尝试修复的第一选择。 Command + Option + Control + Power 退出所有应用程序,允许你进行文稿储存,然后关机 按住 Power 按钮5秒 强制Mac关机 system.jpg 截图 Command + Shift + 3 截取全部屏幕到文件 Command + Shift + Control + 3 截取全部屏幕到剪贴板 Command + Shift + […]
View Details写在前面,大多用MacBook的人都有一个烦恼,就是软件之间的管理,应用生成的缓冲文件怎样删除,还有软件的卸载等等。。。 1.Dr.cleaner Dr Cleaner for mac是趋势科技推出,Mac OS平台上唯一一款集系统优化、垃圾清理、内存优化、应用程序管理等功能为一体的软件,简洁、安全、无广告。 【磁盘分析】 • 扫描您的磁盘并且呈现出一个可点击的多彩可交互文件分布图 • 点击分布图上的项目可以查看文件的详细信息 • 透过文件分布图,可以看出哪些文件或文件夹占用了整个磁盘的大量空间 【大文件扫描】 • 大文件一键扫描(用户可自定义扫描文件体积,从10MB及以上) • 多种筛选条件,包括大小、修改日期、文件名称和文件类型等 • 可以扫描iCloud drive等云储存系统存放的本地文件 • 被保护的文件将不会被显示 [*重要文件可以在保护目录中被锁定,以防误删。] 还有一个就是任务栏会显示你实时内存使用情况,这个功能很实用。 功能我就不一一描述了,还有一点的就是他的应用程序管理需要升级pro版本才可以用,不过这款软件还是功能挺优秀的。 2.AppCleaner 接下来推荐的一款软件就是AppCleaner,它弥补了dr.cleaner的缺陷,可以直接把软件拖到app中进行卸载。 App Cleaner Mac版是一款Mac上的软件卸载工具,App Cleaner Mac版是删除应用留在Mac OS X上的服务文件及卸载应用的最佳应用程序之一。卸载不需要的应用,删除应用的服务文件。确保它们不会占用您Mac上的宝贵空间。 这两款软件联合起来用你就可以很大程度的管理你MacBook的空间了。 from:https://blog.csdn.net/weixin_42634260/article/details/89606421
View Details方式1:splice函数 arrayObject.splice(index,howmany,element1,…..,elementX) index:必选,规定从何处添加/删除元素。 howmany:必选,规定应该删除多少元素。未规定此参数,则删除从 index 开始到原数组结尾的所有元素。 element1:可选,规定要添加到数组的新元素。
1 2 3 4 |
<script type ="text/javascript"> var arr = [1,2,3,4]; arr.splice(0,arr.length); </script> |
方式2:给数组的length赋值为0
1 2 3 4 |
<script type ="text/javascript"> var arr = [1,2,3,4]; arr.length = 0; </script> |
赋予数组的长度小于本身的长度,数组中后面的元素将被截断。 赋予数组的长度大于本身的长度,将扩展数组长度,多的元素为undefined。 方式3:直接赋予新数组 []
1 2 3 4 |
<script type ="text/javascript"> var arr = [1,2,3,4]; arr = []; </script> |
这种方式为将arr重新复制为空数组,之前的数组如果没有被引用,将等待垃圾回收。 效率比较: 效率测试代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<script> var a = []; var b = []; var c = []; for(var i =0 ; i < 100000000;i++){ a.push(i); } console.time('splice'); a.splice(0,a.length); console.timeEnd('splice'); for(var i =0 ; i < 100000000;i++){ b.push(i); } console.time('length'); b.length = 0; console.timeEnd('length'); for(var i =0 ; i < 100000000;i++){ c.push(i); } console.time('赋值[]'); c = []; console.timeEnd('赋值[]'); </script> |
测试结果: splice: 0.010986328125ms length: 0.009033203125ms 赋值[]: 0.024169921875ms 多次测试发现第二种方式最快,第一种其次,大数据量下 第三种最慢。 测试结果可能不严谨。大家仅做参考。 from:https://www.cnblogs.com/jichi/p/10516576.html
View Details1. 切换到要操作的项目文件夹命令行 cd ProjectPath 2.查看项目分支(包括本地和远程)命令行 git branch -a 3.删除本地分支 git branch -d 分支名 4.删除远程分支 git push origin --delete 分支名 5.查看删除后的分支 git branch -a 引用:https://blog.csdn.net/qq_32452623/article/details/54340749 from:https://blog.csdn.net/u011280600/article/details/80744818
View Details先重点说一下可能遇到的坑:主要在原本默认参数的设置以及两个方法的选择上,看完这篇总结你就知道怎么回事了~ throttle API走起 _.throttle(func, [wait=0], [options={}]) func (Function): 要节流的函数。 [wait=0] (number): 需要节流的毫秒数。 [options={}] (Object): 选项对象。 [options.leading=true] (boolean): 指定调用在节流开始前,默认true。 [options.trailing=true] (boolean): 指定调用在节流结束后,默认true。 throttle Demo走起(Vue写法)
1 2 3 4 5 6 |
testThrottle: _.throttle(function() { console.log("throttle"); }, 5000, { leading: true, trailing: false }) |
testThrottle方法被绑定在一个按钮上,demo最终的效果是 : 1、按钮点击后控制台立马打印了throttle——19:39:00; 2、5秒内点击多次按钮,最终只打印一次throttle——19:39:05前; 3、5秒后再点击一次,会重新打印throttle——19:39:05后; PS:lodash默认trailing为true,那么最终的效果是在点击时会立即打印throttle,且5秒后又会再打印一次,即节流之前和之后都会执行该节流函数。 throttle 总结走起 预先设定一个执行周期,当调用动作的时刻大于等于执行周期则执行该动作,然后进入下一个新的时间周期。 简言之:结束时间点不会随点击改变 debounce API走起 _.debounce(func, [wait=0], [options={}]) func (Function): 要防抖动的函数。 [wait=0] (number): 需要延迟的毫秒数。 [options={}] (Object): 选项对象。 [options.leading=false] (boolean): 指定在延迟开始前调用,默认false。 [options.maxWait] (number): 设置 func 允许被延迟的最大值。 [options.trailing=true] (boolean): 指定在延迟结束后调用,默认true。 debounce Demo走起
1 2 3 4 5 6 |
testDebounce: _.debounce(function() { console.log("debounce"); }, 2000, { leading: true, trailing: false }) |
testDebounce方法被绑定在一个按钮上,demo最终的效果是 : 1、按钮点击后控制台立马打印了debounce——19:39:00; 2、5秒内点击多次按钮,最终只打印一次debounce——19:39:05前,假设19:39:04完成了最后一次点击; 3、相对于最后一次点击的5秒后再点击一次,会重新打印debounce——19:39:09后; PS:lodash默认leading为false、trailing为true,那么最终的效果是在点击后等待5秒才会打印debounce,即延迟之前不执行函数,而是在延迟之后执行。 debounce 总结走起 当调用动作触发一段时间后,才会执行该动作,若在这段时间间隔内又调用此动作则将重新计算时间间隔。 简言之:结束时间点会随点击改变 综上所述,适用情况如下: throttle (1)对于键盘事件,当用户键入非常频繁,但我们又必须要在一定时间(阀值)内执行处理函数的时候。例如:一些网页游戏的键盘事件。 (2)对于鼠标移动和窗口滚动,鼠标的移动和窗口的滚动会带来大量的事件,但是在一段时间内又必须看到页面的效果。例如:对于可以拖动的div,如果使用debounce,那么div会在拖动停止后突然跳到目标位置;这时就需要使用throttle。 debounce (1)对于键盘事件,当用户输入比较频繁的时候,可以通过debounce合并键盘事件处理。例如:需要在用户输入完成时进行字符串校验。 (2)对于ajax请求的情况。例如:当页面下拉超过一定范围就通过ajax请求新的页面内容,这时候可以通过debounce合并ajax请求事件。 from:https://www.cnblogs.com/dreamsqin/p/11305028.html
View Details一、安装
1 |
cnpm i lodash -S |
二、方法一 1、引入
1 2 |
import _ from 'lodash' Vue.prototype._ = _ |
2、使用
1 |
this._.debounce(this.handleClick,1000,false) |
二、方法二 1、引入
1 |
let _ = require('lodash') |
2、使用
1 |
_.debounce(this.handleClick,1000,false) |
三、vue单文件组件中使用 里面分别有我自己写的debounce函数和lodash的debounce函数,效果一样!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<template> <div> <el-button @click="myDebounce">我的debounce</el-button> <el-button @click="_debounce">lodash的debounce</el-button> </div> </template> <script> import { debounce } from '@/utils/util' let _ = require('lodash') export default { methods: { handleClick1() { console.log(`真正执行的函数,次数比较少:handleClick1.....`) }, handleClick2() { console.log(`真正执行的函数,次数比较少:handleClick2.....`) }, myDebounce() { console.log(`myDebounce.....`) this.DB() }, _debounce() { console.log(`_debounce.....`) this._DB() } }, created() { this.DB = debounce(this.handleClick1, 1000, false) this._DB = this._.debounce(this.handleClick2,1000,false) } } </script> |
debounce测试.png 注意:以前我是在data选项里面定义DB:null,然后再methods里面初始化函数,但是需要判断‘如果有了就不赋函数,如果为空就赋’,发现比较麻烦;后来直接在created钩子里面定义,就很方便了! 作者:斐鸽传书 链接:https://www.jianshu.com/p/907e8a0ee5d7 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
View Details现在我们经常会习惯性的使用windows系统,但现在开发项目和维护中经常都在使用linux服务器,以为它的性能更强、更精简。
学习大数据的同志们和维护后端的同志们,推荐一下secureCRT软件,用起来也很高大尚,以为都是用命令来操作。