微信小程序之我见 New!

近几天,互联网圈子里炒得最火的,无非是微信推出的"小程序",虽然还只是内测,但已经被iOS、android、产品、运营、后端、以及刚入门的前端仔等行外人士炒成神了,相比近两年html5热潮,真是有过之而无不及。一直没闲下来,今天总算抽出些时间,稍微发表下个人见解。

"小程序是一种不需要下载安装即可使用的应用,它实现了应用'触手可及'的梦想,用户扫一扫或者搜一下即可打开应用。也体现了'用完即走'的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。"

这里想法美好,但现实很骨感,正如人所说,国内企业做产品,不会愿意用户用完即走,这应该是个解决不了的痛点,所以,上述iOS、android的同学可以洗洗睡了,因为这玩意真抢不了你们什么,真有时间关注行外技术,倒不如去了解下hybird开发或者React Native之类。

至于产品、运营,这些人本身就很少懂技术,就像当年把webapp或是其他称作h5,以致于现在h5在国内成为一个神一样的名词,但国际上却不通用,所以,对于产品、运营的热捧,实在是听听就好,不必当真。说什么和原生一样的体验,有什么用么? 查看更多...

为什么建议不要使用「h5」这个简称?

最近发现好多人喜欢将 HTML5 说成 h5,甚至是代指移动端的 Web 页面或者 Web App。虽然说起来朗朗上口,但是小编真的不建议这样来使用。

小编很早之前做过一个关于「h5 这个说法是否喜欢」的调查,总共有 552 位粉丝参与,最终结果是:有 16.7% 的人认为「很好」,37.5% 的认为「无所谓」,有 45.8% 的人认为「不喜欢」(投票数据的原始查看地址: http://vote.weibo.com/poll/2905710 )。那究竟为什么会有那么多人不喜欢「h5」这个简称呢?

「h5」这个简称非常不专业,容易造成误导。

与 JavaScript 被简称为「JS」不同,据小编了解到的情况,h5 这个说法目前只在中国大陆地区的程序员中使用,台湾、印度和美国等地区并没有这个简称,会造成国内外技术说法不一致。而更重要的一点是,JS 是一个指代清晰的简称,没有歧义,就指 JavaScript 这种程序语言。但 h5 却不是,至少 HTML 中还有个 h5 标签。 查看更多...

简易Express资源合并中间件http-concat

相信很多前端童鞋都见过一些网站有如下url输出js或者css

http://example.com/??script1.js,script2.js,build/script.js

http://example.com/??script1.js,script2.js,build/script.js?v=2016

http://example.com/??style1.css,style2.css,build/style.css

http://example.com/??style1.css,style2.css,build/style.css?v=2016

在以前,使用YUI、DOJO等企业前端库的时候,往往会用到类似功能,最近使用express,搜了下似乎没有类似中间件,索性自己写一个,参数形式参考了阿里的nginx-http-concat(似乎目前大部分有此类功能的网站都是采用阿里的nginx模块实现)。代码如下:
查看更多...

使用iptables限制访问网站指定端口

Linux用得比较少,所以对iptables也不是很熟悉,最近部署网站,因为对外的80端口是通过nginx转发,而内部程序都是类似8080、3000之类的端口,不做处理的情况下,很可能会看到如:地址www.poorren.com、地址www.poorren.com:8080同时可以访问的情况,这样对于SEO其实是很不利的,比如cnodejs.org,经常会搜到NodeJS相关文章,但是路径是cnodejs.org:8080,这样一来给用户带来不便,二来多个相同内容也一定程度上降低权重,所以,我们要禁止对带非80端口的路径进行访问。

看了相关文章,都是推荐iptables配置,尝试一番后解决了手头上问题,特记录一下,利人利己。

配置很简单,命令如下:

1、在tcp协议中,禁止所有的ip访问本机的8080端口。

iptables -I INPUT -p tcp --dport 8080 -j DROP

2、允许127.0.0.1访问本机的8080端口 查看更多...

Node应用的进程管理器之PM2

一直以来,没有机会在商业项目、网站上正式用起来NodeJS,说起来挺遗憾的,最近公司网站重构,同时为了配合做些SEO优化,经过一系列筛选后选择了使用NodeJS来支撑前端展现。

在刚接触NodeJS时,也像很多人一样,想问有没有针对NodeJS的热部署方案,后面发现windows下使用nodemon挺好用,但只是简单的自动重载,似乎放到网站上有些不够用,看到翻译后的express官网有介绍进程管理器StrongLoop Process Manager、PM2和Forever,StrongLoop Process Manager是IBM一家子公司维护的,不过国内没见太多人用,大部分都是选择Forever或者PM2(似乎现在PM2使用率更高),对比后选择了PM2。

PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。使用它,可以充分利用CPU多核优势,让你的NodeJS程序完全应用服务器CPU,并且可以保证进程"永远在线",同时,可以实现0秒重载等。

PM2主要特性如下:

1、内建负载均衡(使用 Node cluster 集群模块)
2、后台运行
3、0 秒停机重载,因为带了有负载均衡功能,可以使用pm2 gracefulReload app来实现平滑重载
4、具有 Ubuntu 、CentOS等启动脚本,可以简单实现开机自动启动
5、停止不稳定的进程(避免无限循环) 查看更多...

我为什么选择Nunjucks作为NodeJS模板引擎

最近换了工作,在新的工作中,需要实现后端渲染,故而一改最初的纯html+js形式,选择页面框架、TDK及部分页面后端渲染,由于后台采用java开发,一开始曾考虑另起一个tomcat服务,用于渲染前端页面,而实际搭建完框架后发现,一年多不碰java(期间虽然用过Groovy、kotlin,但实际开发起来还是不如js来得畅快),已经对java的繁琐有些不耐烦,最后转而选择采用NodeJS做后端渲染,一来部分前端模板可以复用(后面发现复用其实是个很纠结的想法),二来做前端开发的兄弟也可以快速上手,相比他们并不懂的java来说,毕竟NodeJS更容易学习接受。

确定了适用NodeJS,下面就确定一下大概框架,采用了目前常见的组合——express+template,因为最初前端使用了所谓最快的模板引擎artTemplate,这里tempate想进行复用,就采用了服务器版artTemplate,实际测试发现并不符合我的需求,由于最近一年使用PHP的YII框架,其中模板layout可以使用block,很方便重写样式、脚本等部分,这里实测后发现,后端模板如果没有layout,基本和写纯静态无异了。 查看更多...

非深户出入境随笔

一直以来,感觉护照、港澳通什么的办起来挺麻烦,来深三四年,硬是没去办,前阵子听朋友说现在非深户在深圳可以直接凭身份证办理护照、港澳通等,并不需要户口之类的,抱着试试看的态度预约了,提前去照相馆拍了专用照片,拿了回执,预约的日子到了,拿着照片、回执和身份证到办事大厅,取号、办证、缴费一气呵成,预约时间下午三点到四点,两点五十五左右到,离开时才三点十分,不得不为民警同志的高效点个赞啊。 查看更多...

Plupload同请求批量上传问题解决思路

最近在使用plupload的做图片上传时,有同一个请求上传多张图片的需求,而对于选择多张图片的上传,plupload是分开多次请求的,由于之前使用plupload时多是采用选择即上传的方式,所以没有发现。

翻阅源码,发现有如下一段代码。 查看更多...

移动端使用FormData实现异步上传

FormData是什么呢?FormData是XMLHttpRequest Level 2添加的一个新的接口,利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,还可以使用XMLHttpRequest的send()方法来异步的提交这个"表单"。比起普通的ajax,使用FormData的最大优点就是我们可以异步上传一个二进制文件。

所有主流浏览器的较新版本都已经支持这个对象了,比如Chrome 7+、Firefox 4+、IE 10+、Opera 12+、Safari 5+。为什么标题说移动端呢?很明显,国内很多网站什么的还在兼容IE8甚至IE7,所以,这个方案在PC端并不是那么好用。早在两年前就有同事不计后果的用上了这个,后来测试发现在IE8下报错才跑来问我,我看了下同事写的代码才发现是个无解的问题,于是同事就开始改造回传统上传模式了。

回归主题,移动端就不同了,目前手机飞速得更新换代,外加上主流手机系统基本都是webkit内核,用上FormData可以说是基本没什么后苦之忧了。那么纠结该怎么用呢? 查看更多...

CORS跨域请求[简单请求与复杂请求]

CORS即Cross Origin Resource Sharing(跨来源资源共享),通俗说就是我们所熟知的跨域请求。众所周知,在以前,跨域可以采用代理、JSONP等方式,而在Modern浏览器面前,这些终将成为过去式,因为有了CORS。

CORS在最初接触的时候只大概了解到,通过服务器端设置Access-Control-Allow-Origin响应头,即可使指定来源像访问同源接口一样访问跨域接口,最近在使用CORS的时候,由于需要传输自定义Header信息,发现原来CORS的规范定义远不止这些。

CORS可以分成两种:

1、简单请求
2、复杂请求

一个简单的请求大致如下 查看更多...

无觅相关文章插件,快速提升流量