分类目录归档:JavaScript

WebSocket入门使用

源自:http://ued.sina.com.cn/?p=900

前言

互联网发展到现在,早已超越了原始的初衷,人类从来没有像现在这样依赖过他;也正是这种依赖,促进了互联网技术的飞速发展。而终端设备的创新与发展,更加速了互联网的进化;

HTTP/1.1规范发布于1999年,同年12月24日,HTML4.01规范发布;尽管已到2012年,但HTML4.01仍是主流;虽然HTML5的草案已出现了好几个年头,但转正日期,遥遥无期,少则三五年,多则数十年;而HTML5的客户代理(对于一般用户而言,就是浏览器),则已百家争鸣,星星向荣;再加上移动终端的飞速发展,在大多数情况下,我们都可以保证拥有一个HTML5的运行环境,所以,我们来分享一下HTML5中的WebSocket协议;

本文包含以下六个方面:

1. WebSocket的前世今生

2. WebSocket是什么

3. 为什么使用WebSocket

4. 搭建WebSocket服务器

5. WebSocket API

6. 实例解析

以上六点分为两大块,前3点侧重理论,主要让大家明白WebSocket是什么,而后3点则结合代码实战,加深对WebSocket的认知。

Continue reading WebSocket入门使用

移动网页开发调试方法

来源于: http://thx.github.io/mobile/debugging-in-mobile/

三分靠 coding,七分 debugging!

少年天才以外的我们,与其说是 coder,不如说是 debugger,都是一路调戏过来的,不好意思,是调试【本人口齿不清,发音不准,再发生类似事故请多多见谅】,因此当你 主动/被动 All in 了无线以后,你发现,知识的储备只是时间的积累和有意识的训练而已,可面对众多的 爱疯,案桌儿,山柴,内核不同,大小不一的设备。尼玛,没有个顺手的调试工具,简直是不能忍受的。

于是,结合我做无线有 一个季度 以来的爽与痛,再扒扒找找,整理一份专门调戏无线设备的攻略如下,不对之处,请千万指正:

Continue reading 移动网页开发调试方法

最新的js验证手机号码

号码段不断更新,老的一些验证正则已经不行了,截止到文章发出时间,最新的规则如下:

var regex = {
mobile: /^0?(13[0-9]|15[012356789]|18[0-9]|14[57]|170)[0-9]{8}$/
};

该规则根据http://www.pooy.net/js-preg.html改动,因为他的规则也已经过期了。

附带最新数据信息(http://duanmu.org/log/mobile/):
程序所带ACCESS数据库为2013年11月17日更新,数据来源IP138+百度,数据总数【286764】条

电信133 -> 9648 电信153 -> 9818 电信180 -> 9577 电信189 -> 9988
电信181 -> 8263 移动134 -> 9694 移动135 -> 10000 移动136 -> 10000
移动137 -> 9976 移动138 -> 9994 移动139 -> 9998 移动150 -> 10000
移动151 -> 10000 移动152 -> 10000 移动157 -> 7096 移动158 -> 10000
移动159 -> 10000 移动182 -> 9960 移动183 -> 9975 移动184 -> 4879
移动187 -> 9980 移动188 -> 9546 联通130 -> 9879 联通131 -> 10000
联通132 -> 9804 联通155 -> 10000 联通156 -> 9781 联通185 -> 6983
联通186 -> 9684 数据卡145 -> 5883 数据卡147 -> 6358

2014年06月26日 新增170号码段。

移动开发js库Zepto.js使用中的一些注意点

来自http://chaoskeh.com/blog/some-experience-of-using-zepto.html的参考。

前段时间完成了公司一个产品的 HTML5 触屏版,开发中使用了 Zepto 这个著名的 DOM 操作库。

为什么不是 jQuery 呢?因为 jQuery 的目标是兼容所有主流浏览器,这就意味着它的大量代码对移动端的浏览器是无用或者低效的。

而 Zepto 只针对移动端浏览器编写,因此体积更小、效率更高,更重要的是,它的 API 完全仿照 jQuery ,所以学习成本也很低。

但是在开发过程中,我发现 Zepto 还远未成熟,其中包含了一些或大或小的“坑”,与 jQuery 的差距还是很明显的,所以写篇文章记录下,希望对后来者有帮助

Continue reading 移动开发js库Zepto.js使用中的一些注意点

回调函数集工具ActionSet还是jQuery Callbacks?

在知道jQuery.Callbacks()方法之前,碰见这样一个场景:

现有A、B、C3个模块, 分别写为3个js同名文件,由3个人分别开发。A和B完全独立,但是都依赖于C中一个ajax的回调数据。应对这种情况,于是写了一个ActionSets的对象,用于多个action的注册添加,与指定的时间地点触发执行 。使用的时候,在A、B分别注册一个Action,然后在C中的ajax回调中去统一执行这些Actions。

当时有两种设计想法,基于Object的key-value形式,一种是可以执行指定的Actions(action亦即callback一样的概念),但不能往Action内传参数,一种是只能执行全部的Actions,但是可以往每个Action传入参数。

因为需求中依赖C的ajax数据是存入cookies的,所以采用了第一种设计,看如下源码可以看出来:

Continue reading 回调函数集工具ActionSet还是jQuery Callbacks?

nodejs用fs.renameSync报错cross-device link not permitted

平台是windows,linux下也会有这种错误。具体是在调用

fs.renameSync(oldfile, newfile);时候,报以下错误:

fs.js:340
  return binding.rename(pathModule._makeLong(oldPath),
                 ^
Error: EXDEV, cross-device link not permitted 'C:\Users\cssor.com\AppData\Local\T
emp\5dead17eab63b1909b2e2664bdc1810c'
    at Object.renameSync (fs.js:340:18)

通过google以后理解了所谓的cross-device是什么意思了,原来是从C盘重命名文件并保存到F盘就会导致这种错误,所以,貌似只能同一个盘符操作。。。