input用keyup/keydown等监听汉字时的麻烦事

input用keyup/keydown等监听的时候,若是输入中文字符,汉字未输入完成还是拼音的时候,利用$(this).val()获取到的值全是拼音,这个做模糊查询没啥问题,但若是做正则匹配过滤字符,并且过滤字符后再用$(this).val()字符赋值,就将拼音直接写到input里面了!!! 为了解决这个问题,找到了compositionstart和compositionend这对属性,这两个分别在浏览器有非直接的文字输入时,以及当浏览器有非直接的文字输入结束时处罚,具体用法参考示例见源码: 参考文章:http://blog.sina.com.cn/s/blog_69ec42d50102wqok.html

自制的nodejs静态资源服务器

之前启用静态资源服务器一直用的是python,对于本人来讲python属于必备,但新来的实习生啥的不一定喜欢python,于是就萌生了用node做一个静态资源服务器的想法,于是就做了下面这个一个npm包,使用也很简单全局安装,然后就可以用了! 安装完成后,在想要开启静态服务的目录下输入: 备注:代码写的比较短,只依赖了外部的mime-types模块,在本人mac电脑上完美跑通了,若是有其他问题,可根据以下的源码自行解决,也可以在github上留言,: 源码:

linux如何清空某个目录文件

一般或者说是最常用的就是利用rm,命令如下: 但这个命令有一个风险,就是上面注释中提到的,一旦由于疏忽输错了,将./变成了/,那麻烦就大了,还有,若是目录切换错了,也会引起不少麻烦~~ 除了这个正统,但风险比较大的方式,其实还有一种清空目录的方式,就是find,首先,具体方式就是

git搭建私人仓库authorized_keys配置文件不生效

git搭建私人仓库authorized_keys配置文件不生效~~~重复检查.SSH和authorized_keys文件的所属用户是git,权限也分别是700和600(这里也不知道为什么,反正照着改成要求的吧),但就是不生效,最后最后发现坑爹的问题居然是window下粘贴的公钥放到authorized_keys的问题,具体的是由于空格还是什么其他原因不知道,总之就是不行~~~于是为了解决,我将window下的公钥直接弄倒了服务器上,这里用到的是lrzsz,然后利用如下命令导入的,总之好了:

windows的cmd打印utf8的汉子乱码处理办法

有些时候,我们用cmd做一些事情,比如python爬虫,演示时一般都是将爬到的内容直接打印到cmd窗口,但发现了乱码~~~,这个时候怎么处理? 很简单,将cmd的默认编码格式修改成utf8就可以了,具体命令如下:chcp 65001 改完了utf8格式,哪天发现gbk的又乱码了,怎么办,再利用如下命令再改回去:chcp 936

php的time()获取到的时间错误

今天用php的time()获取服务器当前时间,发现居然是错误的~~~利用date命令看了服务器本身时间没错,那问题最有可能就出现在了php配置的时区并不是我们的大北京时间!!!想到这里就查一查看一看,于是找到php.ini文件,全局搜一下“date.timezone”,发现有关“date.timezone”设置的部分被注释掉了,且并未给赋值~~~于是我将注释打开,将其赋值成我们的北京时间,代号为“ PRC”,整体来讲就是这样子。 配置完成后重启php,重启完成后发现时间正常了 后续查了一下,貌似php默认走的是美国时间~~

实际工作中常用到的git命令

git这个东西是很博大精深的,对应的命令也是挺多的,具体的可以看官方手册,想要了解的可以看阮一峰的这篇博客,这边的开头介绍了git的远端仓库、本地仓库、暂存区以及工作区的概念,这一点对于理解git很重要。 这里,只介绍一下在我们日常工作中比较常用到的一些命令(对于老司机们,若是觉得以下命令有不对的,或者说是有更优的方式请指正一下,多谢) 1、下载安装git,可以直接到官网下载对应版本,官网见这里,除了下载git外。 2、还需要一个知识,就是cmd或者sh,毕竟在命令行里面,但不要怕,这里用到的命令不多,只有简单的几个,若是了解的话可以直接略过这部分。 3、正式开始介绍git命令,拿到项目后,首先要用到的命令是clone,clone的地址就是我们拿到的git地址,拿从github上clone一个项目为例。 clone的过程中,一般需要你输入账号和密码,若是确定你有这个项目的拉取权限,只要照常输入就可以了,若是没有找人问问,这里若是避免每次都输入账号和密码,可以采用ssh key的方式,具体操作可见参考这篇文章,其中生成完的ssh key配置到哪里,这个具体的git平台可能不一致,需要自己找找,一般应该也都在用户的配置里面。 4、项目clone下来了,接下来要做的操作应该是切换到你要开发操作的分支(由于默认clone下来的是master分支,严格来说master分支是不允许直接操作的),切换之前我们需要看一下远端都存在哪些分支,这里我们可以用如下命令来做。 5、查看完分支后,现在就需要切换到对应分支了,这里可以用如下命令,来完成建立对应的本地分支(最初本地没有这个分支),并且将本地分支与远端分支关联(git push提交操作的时候默认提交到对应的远端分支),同时完成对应分支的切换。 6、上一条目介绍的是你要操作的分支远端已经存在,但本地没有的情况下,接下来我们来介绍下另外两种情况,一个是远端和本地存在了,还有一种情况是本地和远端都不存在。先介绍第一种。 这里切换命令就简单多了,只需要: 7、最后这种情况是远端和本地都没有,那么就需要你重新建立一个分支(这里备注一下,你在哪个分支新建分支,那么新建这个分支的默认代码就是当前分支的代码,所以实际操作中新建分支一般需要在master下面,并且在新建前执行拉取远端最新代码的操作–git pull),并将其推送的远端,所有操作都在这里: 是不是也不复杂,这里加一个提示,其实,以上的第一二条命令可以合并。命令如下: 其实除了上述三种情况,还有一种是本地存在但远端没有,这里的操作还是可以直接用git checkout切换分支,与本地和远端均存在完全一致,毕竟这个命令操作实际产生效果的在本地环境。 8、操作分支搞定了,这里我们就应该按照业务需求来修改代码了,修改完成代码之后,我们就要面临着提交代码,在提交代码之前,我们最好先查询一下代码的修改状态,也就是哪些文件被修改了,这里我们可以执行git status命令。 备注下,若是除了红色列表,还给你列出了绿色列表~~不用怕,绿色是你已经添加到暂存区,但未提交的代码,就是执行了git add 操作,但未执行git commit操作~~那git add和git commit 又是啥? 9、git add紧接着上面的操作,你利用git status确定要修改的文件没有问题,需要将它们提交到git上面,这里首先要用到的就是git add .,add完成后,需要用到的就是git commit,具体如下: 将代码加到暂存区后,我们可以用git commit将代码提到本地仓库。 备注:对于修改部分的内容(若是你要提交的修改包含了新建文件的部分,还是乖乖先add再commit吧),add和commit也可以进行合并成 10、介绍完了提交,我们在开发的时候还会遇到一种情况,就是由于某些原因,我这波修改不要了,想要回退到未修改时的样子,这里的回退也分为几种情况,这里主要介绍未到本地仓库阶段的代码,存在于工作区和暂存区的。具体如下: 单个文件回退,且这个文件并非此次新增(此文件在本地仓库已经有记录了,是本地仓库,暂存区不算啊) 单个文件回退,且这个文件为此次新增,这个就简单了啊,直接到文件里面删除就可以了,根本不用git命令,命令行为 说了单个文件,再说多了文件,主要指的是不区分文件对整个暂存区和工作区做处理的。 先说已经到了暂存区的,这里只需要一条命令: 接下来是在工作区的,这里分为两部分,一个是新增文件,一个是在现有文件修改,不论怎样,两条命令合在一起就搞定了 11、讲完了提交到本地仓库,接下来要讲一下如何提交到远端仓库,这里我们要用到git push 命令,一般来讲,若是按照我们上面介绍的部分,也就是你将本地分支与远端的某个分支做了关联,你只需要执行: 若是git push未成功,看一下提示,常见的情况有两种,一个是你的本地没有指定对应的远端,这个时候按照提示关联一下,一般来说会是这个命令 另外一种就是代码冲突了,没啥好办法,先利用git status查看冲突的具体文件(其实提交的报错日志也有),看看谁的代码和自己冲突了,很明显的问题自己解决了,拿不准的一定要找对方沟通,待完全完全解决完冲突的部分后再利用git add和git commit提交解决冲突的部分,随后再git push提交。 12、说完了提交到远端仓库,还有一个很重要的命令是git pull,这个命令是拉取远端仓库的代码,这个命令记得要经常用,每次你准备修改代码的前都要执行一下git pull。顺便再说一下,对比git pull,上一条的git push应该在每次或者说每一个功能完成后来一次。 13、至此,提交和提交前的回退都完事了,最后在说一下上面提到过git diff命令,除了将暂存区和工作区的代码做对比,还可以对比两个版本的代码,还可以对比两个分支的代码,还可以对比两个版本单独的代码,总之很强大,我们现在就简单介绍一下吧。 首先,对比两个版本的代码,这里先介绍一下git log这个命令,这个可以列出来提交信息列表,列表中详细列出了每一次提交的commit hash值,时间以及注释信息,拿到两个不同的commit hash值,然后执行 以上命令会列出两个版本修改的详细信息,但若是更改的内容过多的话,会觉得很多很混乱,这个时候我们可以只列出不同文件的列表。信息如下。 按照以上命令列完了不同文件的修改后,若是打算看单独某个文件的修改,执行如下命令便可: 上面介绍完了两次提交版本的对比,接下来说一下两个分支的对比,其实分支和版本一样,只是将对应的commit hash换成分支名称即可,例如对比master分支和dev分支命令如下: 13、然后,我们再说一下分支合并,比如我们要将dev分支合并到master分支,首先你需要在你要合并的两个分支下都执行一下git pull命令,保证你本地的两个分支代码都是最新的,这里若是发现有人提交了一些代码,但你不了解提交的内容应该先去沟通,沟通完成后我们利用git checkout命令切换到master分支,然后执行如下命令: 备注:合并代码过程中可能会发生冲突,遇到冲突后解决办法与git pull命令遇到冲突后一致。 14、说了那么多分支的操作,“增”和“改”都包含了,最后还有一个删的操作,删的操作包含本地删除和远端删除。不论是本地删除还是远端删除,都不要在即将被删除的分支下操作,比如我们要删除dev分支,那么我们就需要利用git checkout到其他分支,比如master,然后执行如下命令: 至此,完成了本地和远端分支的删除,但这里存在一个问题,若是其他人删除了远端分支,我们默认是获取不到远端分支本删除的状态的,为了让我们获取到我们需要执行一个如下命令: 15、最后,说一下我们上线的时候有些版本会比较大,这类的版本我们可以打一个tag标记,目的是方便查找,然后我们这里就介绍一下打tag的命令,命令如下: 总结:至此对应的介绍就到这里了,上面介绍的命令很多都有挺多参数的,例如git log,其在指定文件名后可以只看某个文件的提交记录~~~总之,这里我们只介绍了常用的部分,更加深入的部分请自行了解吧!

sublime text 3 打开的文件中快速定位到目录结构

题目描述的不太清楚,大意就是,我利用搜索之类的打开了一个文件,但我不知道这个文件所在的层级目录,这个时候怎么办? 有一个插件可以满足要求,叫SyncedSideBar,安装完这个插件后,在打开的文件窗口右键会出现一个“Reveal in Side Bar”,选择“Reveal in Side Bar”后右键的目录结构就出来了。 不会安装sublime的插件,可以看下面这篇文章:http://www.duanzhihe.com/?p=817

Git 中.gitignore 使用和.gitignore 无效的解决方法

原文地址:https://www.jianshu.com/p/e5360fa04152 造成这个问题的原因是:.gitignore只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore 是无效的。 解决方法是先把本地缓存删除,然后再提交。 解决问题的具体命令。 如果缓存中有重要的数据更改,那么你需要单独删除不要的缓存:

js动态加载并在加载后执行一些代码

这个借助一些框架或工具应该有很多方式,比如利用seaJs,requireJs,还有jquery的getScript方法,这里只说一下用原生的方式怎么处理,最简单原始的解决方式,废话不多说了,直接上源码吧: 备注:亲测了PC端chrome,还有移动端的几个机型(包含IOS和安卓)没有啥问题

js预加载资源,并展示加载进度

之前经常看到有人做的页面加载前先有一个加载过程,并且动态展示加载的百分比,查了一下,发现利用了一个CreateJS,CreateJS中的PreloadJS可以实现效果。 先附上CreateJS的官网: 官网:https://createjs.com/ 中文官网:http://createjs.cc/ 下面附上一个简单源码,备注:由于引用的资源都是本地的,所以想要跑case,需要替换成自己的本地资源哦,比如creatsjs,还有那些预加载的图片。 最后再说一下,creatsjs功能挺强大的,有时间和兴趣的可以深入研究!!

Unable to load script from assets index.android.bundle on windows

react-native在运行demo时报如下错误“Unable to load script from assets index.android.bundle on windows”。 react-native版本是0.55.0 安卓调试真机是oppo R9s android studio的版本是3.1 介绍完前提,开始说解决办法。 首先,到你的react-native目录下,然后找到android/app/src/main目录,在这个目录下新建一个assets,可以手动建,也可以mkdir建,如: mkdir assets 然后执行下面的命令: react-native bundle –platform android –dev false –entry-file index.js –bundle-output android/app/src/main/assets/index.android.bundle –assets-dest android/app/src/main/res 参考文章:https://stackoverflow.com/questions/44446523/unable-to-load-script-from-assets-index-android-bundle-on-windows

mac下关闭、重启利用brew安装的nginx

如题,本人的nginx是利用brew直接安装的,安装完后启动直接是用sudo nginx执行,启动是启动了,但若是修改了配置文件后想要重启操作不知道怎么做了~~~~ 最初,不知道怎么解决,项目紧张也没有太多时间查就采用了最暴利的方法,利用”ps -ef | grep nginx”查询到nginx的进程id,然后kill掉,然后再重启~~~ 很明显,这不是一个合理的解决办法,于是今天有时间的情况下,我就查了一下怎么做,最简单,利用nginx -h看了看,返回如下。 看到了其中的-s命令了,可以出发一个主进程的信号,信号可以是stop, quit, reopen, reload,很明显,stop(关闭)和reload(重启)命令都在里面,至此问题解决了。 什么还是没看懂怎么做? 很简单,关闭就是这个“nginx -s stop”,其他的不用说了吧! PS:这里有可能只适用于用brew安装的nginx,至于系统,mac可能还好,其他类unix不一定适用,它们有可能有更加便利的方案。

badJs的mysql账号名和密码的更改

文章发布时间20180403! 搭建badJs环境时mysql默认是没有密码的,但自己的mysql数据库访问又是需要密码的,这个时候就需要修改了,全局搜索有关“localhost:3306”的内容(为啥搜索这个,因为一般来说默认的mysql端口时3306,本地访问是localhost),一共找到了如下三个文件,路径时自己的badjs下: 从字面来看,基本上可以猜出三个文件的作用,不过也不用管了,最简单的方式是将文件中有关msyql密码的配置全部修改了,如何修改,在文件内找到类似的文案,写成下面的样子就可以了。就是这个样子“mysql://root:XXXXX@localhost:3306/badjs”,其中xxxx是你自己的mysql密码,前面的root就是你的账号(一般默认就是root了)。

koa(实际上已经是koa2)用xtemplate时include无效?

遇到的问题如题,koa(实际上已经是koa2)用xtemplate时include无效? 可是我就是按照github官方的写法写的啊,看到一些博客也都是这样写的啊,为啥就无效呢? 就是这样写的 其中当前文件和header.xtpl在同一层级,且都在模版引擎views指定的“顶级”目录,顶级就是没有到第二级。 以上就是病例~ 查找了好久,最后想了想shell脚本执行的时候若是不做配置,需要利用’./’说明一下需要执行的脚本是在当前路径下,于是我就把上面的include修改成了下面的样子。 没有想到居然真的好了,后面想一下,这里(views)和静态目录(static)的设置不一样,static将整个静态资源放的访问都指向了这个默认的静态目录,也就是静态资源有了一个绝对访问地址,但views里面的访问还是需要采用相对的方式来引用。 总之,解决问题了就好了! PS:看现在github官方的写法也已经改成了{{include (“./header.xtpl”) }}这种写法。

mac下Charles无法抓到chrome的包

查了半天,原来是chrome需要自行配置代理,如何设置代理呢? chrome版本:65.0.3325.181 chrome右上角找到三个点的图标,点击选择设置,然后下拉到最后的高级,下来在“系统”(这个版本是在倒数第二个)的条目下找到“打开代理设置”,然后双击打开之后,打开之后找到代理的tab点开,点开之后可以看到请选择一个协议进行配置,这个时候找到“网页代理(http)”和“安全网页代理(https)”,进行相应的配置就可以了,一般来说自己不做其他处理,直接配置代理服务器为“127.0.0.1”,端口(就是冒号:)后是“8888”。

mac下badjs启动报phantomjs相关错误

mac环境,badjs报错信息如下 查了一下,发现是phantomjs已被废弃了,需要安装phantomjs-prebuilt,安装在badjs-web目录下,npm install phantomjs-prebuilt –save,安装完成后在这个文件下“badjs-installer/badjs-web/node_modules/node-highcharts-exporting/index.js”,将 phantomjs = require(‘phantomjs’); 替换成phantomjs = require(‘phantomjs-prebuilt’)

linux利用du查询当前目录下文件和目录的大小

linux版本centos 有关du的命令很多,直接说解决上面问题的命令吧。 命令: du -sh * 若是我想要给结果排序,利用sort命令; 从大到小命令:du -s * | sort -rn 从小到大命令:du -s * | sort -n 除了排序,还可以选出前十个和后十个 前十个命令:du -s * | sort -rn | head 后十个命令:du -s * | sort -rn | tail 除了上述命令还可以利用–max-depth,表示查询深度来展示当前目录下文件和目录的大小。 更多有关du的命令可自行查询。

利用a标签自动解析URL

对于window.location,我们比较熟悉,它有protocol,hostname,host,port,search,hash,href,pathname等属性,a标签也和window.location一样,也有这样属性,这样可以方便我们分析网址,闲话少说,上代码。

wordpress防止垃圾评论

用wordpress建站若是不做设置和处理的话经常会被注入很多垃圾评论,这里教大家一个简单设置能够屏蔽到一大部分垃圾评论的方法~~ 说方法前,先说一下垃圾评论是怎么自动填入到我们站点的,其实很简单就是找到有特定标识的输入框,然后去注入~~~ 我们处理方式页很简单,就是不能让他随随便便就注入了,要给他增加门槛,正好wordpress对评论可以设置成登录用户才可以评论,所以我们设置一下就可以了,具体怎么设置如下: wordpress版本:4.9.4 进入仪表盘,然后选择“设置”-》“讨论”-》“其他评论设置”-》“户必须注册并登录才可以发表评论”勾选上就可以了。 上面针对的是已经汉化版本的,若是英文版本的,英语好的自己去对应找吧,应用差一点的可以走下面的流程。 进入仪表盘,然后选择“settings”-》“Discussion”-》“Other comment settings”-》“Users must be registered and logged in to comment”勾选上就可以了。

mac下浏览图片

mac下打开图片后不支持左右翻看图片~~这感觉挺不爽的,于是了解了下,发现最简单的方式是选中一个图片后,按下空格打开图片,然后按“上”和“下”就可以翻看图片了,但不好的地方是这种方式非图片的也会被打开预览~~~虽不是那么方便,但直接可以用~~ 一些其他方案参考:https://www.zhihu.com/question/20705417