luoqiang 发布于 12月07, 2017

PhantomJS截图实践

PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG。 有时候我们需要浏览器处理网页,却不需要视图浏览。比如网页截图、抓取SPA网站、自动化测试等操作。这个时候就用得上PhantomJS了,...

阅读全文 »

luoqiang 发布于 12月04, 2017

mysql存储emoji表情

MySQL的文本类型(varchar,text),对emoji的支持度不是很好,在5.5.3版本之前,MySQL是直接不支持emoji存储的,纵使是utf8编码模式。 其原因在于,MySQL的utf8编码规定一个字符按照3个字节来存储,而emoji缺是用4个字节来存储的。所以导致了,如果强制将em...

阅读全文 »

luoqiang 发布于 12月04, 2017

记一次磁盘占满导致PM2无法启动事故

今早来到公司,日常查看一下博客,居然发现博客502了,记录一下查找问题并重启程序的过程。 意识到应该是NODE服务挂了,登录ECS一看,一顿命令打下来(其实就是pm2 ls),果然,pm2守护进程都不见了,只报给了我一个[PM2] Spawning PM2 daemon with pm2_ho...

阅读全文 »

luoqiang 发布于 11月21, 2017

开始使用 Let's Encrypt 证书

博客一直使用的是赛门铁克(Symantec)的免费ssl证书,最近发现Chrome默默的在控制台给我报了一个warning,这怎么能忍?控制台怎么能报warning呢? 谷歌一顿操作后,决定使用Let's Encrypt证书,Let's Encrypt 是个免费、自动化、开放的证书...

阅读全文 »

luoqiang 发布于 11月19, 2017

使用NodeJs上传文件到七牛云

七牛云是国内比较出色的云存储提供商,同时提供10G免费空间、10G免费流量。国内不少网站都选择七牛来存储网站图片等静态资源,不少博客框架也默认提供七牛的存储配置,包括本博客使用的火麒麟,还有诸如Ghost博客也是默认提供七牛存储配置的。 七牛的文档提供的比较完善,但还是有一些坑,总会一些没有提及到...

阅读全文 »

luoqiang 发布于 11月15, 2017

搜索sug中踩的坑

背景是这样的,最近开发一个查询地址的sug功能,即监控输入框的变化,一但变化可以通过API查询该关键字,将结果列出在下面供用户选择。接下来说一下开发过程中遇到的两个坑。一、函数Debounce虽说只是监控变化,就发起请求。但是如果用户输入特别快,特别频繁。比如一秒内按了10几个字母(可能单身很多年了...

阅读全文 »

luoqiang 发布于 10月27, 2017

JS如何优雅的交换数值

有值a和b,怎么样能优雅又高效的交换他们的数值呢? 常规方法交换数值最常见的方法应该是临时变量交换方法了,该方法比较通用,适合所有类型数值。效率也是很高的,经典的很优雅。 var a = 1,b = 2;var tmp = a;a = b;b = tmp;利用数组该方法也比较常见,可以给小白装...

阅读全文 »

luoqiang 发布于 10月26, 2017

ionic2 修改返回按钮text值

ionick开发时,顶部返回按钮的默认值是"back",但是做为中国使用者可能更希望这个值是"返回"两个字。 网上有看到一些办法:隐藏原有按钮,重写新的按钮,或者获取Navbar后修改它的值跟事件。两种方法感觉都不太好。翻了翻API,发现里面是有设置文案内容的...

阅读全文 »

luoqiang 发布于 08月28, 2017

Ionic2 修改顶部返回按钮文案

ionick开发时,顶部返回按钮的默认值是"back",但是做为中国使用者可能更希望这个值是"返回"两个字。 网上有看到一些办法:隐藏原有按钮,重写新的按钮,或者获取Navbar后修改它的值跟事件。两种方法感觉都不太好。翻了翻API,发现里面是有设置文案内容...

阅读全文 »

luoqiang 发布于 08月21, 2017

基础知识之盒子模型

概述在文档中,每个元素都被表示为一个盒子,它具有如下属性:内容(content),内边距(padding),边框(border),边距(margin)。盒子模型对用了我们生活中盒子,它们也具有这些属性。盒子模型是css中的一个很重要的概念,它是页面排版布局的基础。css盒子模型有两种模式:IE盒子模...

阅读全文 »