迈向PWA!利用serviceworker的离线访问模式

微信小程序来了,可以利用WEB技术在微信打造一个有着Native应用体验的应用,业界非常看好这种形式。但是你们也许不知道,Google早已有类似的规划,甚至层次更高。那就是PWA(渐进式增强WEB应用)。PWA有以下几种特性: Installablity(可安装性) App Shell Offline(离线能力) Re-engageable(推送通知能力) 所有这些特性都是“优雅降级、渐进增强的”,给支持的设备更好的体验,不支持的设备也不会更差。这就和微信小程序这种二流设计的根本不同之处。     继续阅读
Pang Jian's avatar
Pang Jian 2月 08, 2017
 | 

全站HTTPS改造

HTTPS大势已来,2016年6月苹果宣布要求所有iOS Apps在2017年初全部使用HTTPS,11月Google宣布,从17年1月开始,对没有使用HTTPS的网站竖起“不安全”的小红旗。15年,淘宝、天猫也启动了HTTPS迁移。国内网络环境也不太好,经常会有运营商篡改页面的情况,为了更安全的客户体验,避免各种情况同事顺应大势所趋,本博客也进行了全站HTTPS化。     继续阅读
Pang Jian's avatar
Pang Jian 1月 24, 2017
 | 

nodejs部署方式-pm2(一)

目前Nodejs开发中有很多痛点,其中有一个是修改完代码以后需要我们重启服务才能看到效果。这样一次次的杀进程、重启,杀进程、重启很让人头大。程序员是最痛恨重复工作的物种,之前有了解过的同学可能知道forever。forever可以帮我们解决上面的问题,通过对资源变化的检测做到变化后自动重启。开发阶段我们使用node file.js来启动另外由于Nodejs的单线程,任何异常都会导致整个服务中断,这对于生产上长时间提供服务的程序来讲是不可以的,forever可以帮我们在异常后重启,保证服务一直在线,我想这也就是它名字的由来吧。但我想说的是forever不够“高!大!上!”。接下来我要介绍一个足够高大上的神器– pm2。 简介 pm2=P(rocess) M(anager)2,是可以用于生产环境的Nodejs的进程管理工具,并且它内置一个负载均衡。它不仅可以保证服务不会中断一直在线,并且提供0秒reload功能,还有其他一系列进程管理、监控功能。并且使用起来非常简单。下面我将把我的使用过程分享出来,Nodejs应用是一个基于Express 4.x的应用,名称是Wolverine。     继续阅读
Pang Jian's avatar
Pang Jian 12月 02, 2016
 | 

使用CNPM搭建私有NPM仓库

我们在使用Nodejs的时候,使用npm仓库来发布和管理模块,我们可以从npm上下载别人发布的模块使用,也可以自己发布模块,有点类似于Maven,这是非常流行的开源社区模式。但是在企业内部,我们不希望我们的生产代码可以随意引用任何未经企业审核的代码;我们也不希望企业内部自己的模块发布给任意人员使用;还有一个重要的原因是很多企业内部无法连接互联网cnpm就是来解决这些问题的。官方的解释是cnpm=Company npm 环境配置 OS:Red Hat Enterprise Linux Server release 6.4 (Santiago) node:v4.4.5 npm:2.15.5 cnpm:2.10.0(截止到本文发布)     继续阅读
Pang Jian's avatar
Pang Jian 6月 01, 2016
 | 

使用travis-ci持续集成Hexo静态博客

Hexo是一个基于Nodejs的轻量级静态博客生成框架。静态博客生成程序会将我们所写的博客生成为一套HTML+CSS+JavaScript代码,我们将这个代码部署到诸如Github Page这样的地方就可以在世界任何一个地方访问我们的博客了。这种方案有一个非常有利的优点–免费。但是,hexo环境不是处处都有,换个地方写作变成了一件麻烦事。而且写完文章以后需要hexo g,hexo d等一系列操作,着实很麻烦。本篇文章利用Travis CI解决以上痛点。     继续阅读
Pang Jian's avatar
Pang Jian 5月 25, 2016
 | 

浏览器缓存知识归纳

写在开头:这篇文章是打算分享到单位内部的材料。归纳浏览器缓存也是对一个生产问题的分析总结出来的。这片文章经过脱敏以后发表到个人博客上面吧。 浏览器缓存(Browser Catching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。 —-摘自《百度百科》 浏览器缓存是提升网页性能的一大利器,但是,也是一把双刃剑。利用的好网页的性能会有大幅度提升,服务器的压力也会减小。利用的不好,也会遇到很多的问题。本文结合浏览器缓存的知识,结合真实案例进行分析,希望对读者有所帮助。     继续阅读
Pang Jian's avatar
Pang Jian 3月 05, 2016
 | 

2016年,猴年快乐!

2016年新年,祝愿所有人新年快乐,猴年吉祥。这片文章是【近期想法】主题的第二篇,上一篇有部分内容已经实现了,只是没有来得及写文章。...     继续阅读
Pang Jian's avatar
Pang Jian 2月 07, 2016
 | 

我遇到一个Bug,金额大于一千万就报错

这是一个在测试环境发现的一个BUG,感觉很有趣,便写出来分享一下。本文的灵感以及标题都来自于《我遇到一个BUG,每逢周三就崩溃》。我在银行做系统开发,“金额”基本上是最常见的字段,也是最不能出错的字段了。每一个错误都代表着实打实的资金损失,无论是客户的还是银行的。所以,作为开发人员,对这个字段也相对敏感一些。金额这个字段的规则也相对其他字段更复杂一些。举个例子来说,金额是一个数字,可以是这样12;当然也有小数点的情况,比如这样12.34;人们还有这样的习惯,每隔3位有一个逗号分隔符,比如这样1,000.23。可是一千万是个什么特殊情况,为什么会有问题呢?     继续阅读
Pang Jian's avatar
Pang Jian 1月 13, 2016
 | 

使用Pjax优化你的网站

Ajax(Asynchronous Javascript and XML)的魅力在于它的每一个成员都不是新技术,经过奇妙的结合却掀起了WEB2.0的革命。Pjax是pushState和ajax的封装,同样每一个都算不上新技术,结合起来却有着神奇的效果。     继续阅读
Pang Jian's avatar
Pang Jian 12月 03, 2015
 | 

javascript前后端代码复用-browserify

Nodejs将javascript带上了一个新的高度,让之运行于浏览器端的javascript可以运行在服务器端。但是Nodejs遵循Commonjs规范,不能直接运行在浏览器端。虽然是同一种语言,但是前后端有着自己的库,不能复用真是一种浪费。这时候一个神器出现了,Browserify。通过预编译,可以将Commonjs规范的后端Nodejs代码直接可以运行在浏览器端。打通了端后端代码复用的壁垒,为nodejs程序开辟了一片新天地。     继续阅读
Pang Jian's avatar
Pang Jian 11月 18, 2015
 |