HTML5表单验证有效状态对象

HTML5增加对表单内容类型验证的支持,而通过js获取验证有效状态的API就是ValidityState对象。

获取该对象方法:

var input = document.createElement('input');
console.info(input.validity)

浏览器支持度见: http://caniuse.com/#feat=form-validation

那么由此我们就可以写出更简单的验证框架。该对象拥有的属性如下:

继续阅读~ 参与评论~

JavaScript实现一个单程双向工作流

初衷源于项目中上一步,下一步这种交互需求,而每一步有可能或全部是异步操作,而且会有数据临时存储与获取的需要。

考虑了一些方案,受requirejs,seajs实现的启发,最终实现了这个单程双向工作流对象,而其源码看似相当简单。

那么怎么使用呢?当var flow = new Flow()实例化一个工作流以后,可以调用如下API实现:

1、流程添加API 3个:

// 参数action是一个function回调,比如
// function(i, data) {}
// i是当前步骤的索引,从0开始
// data是所有步骤存储的数据数组,因为本工作流提供数据存储,也自然提供获取
// data[i]即 第i步的数据
// action中的this指向为flow实例对象
flow.start(action); // start其实内部实现为调用next方法,因此start等同于next,其存在价值大概是为了语义
flow.next(action);  // next,添加下一步action
flow.done(action);  // done,完成所有步骤,该方法也是启动整个工作流的必须方法,也必须是最后调用。

继续阅读~ 参与评论~

git subtree用法

来源于:http://aoxuis.me/posts/2013/08/07/git-subtree/

使用场景

例如,在项目Game中有一个子目录AI。Game和AI分别是一个独立的git项目,可以分开维护。为了避免直接复制粘贴代码,我们希望Game中的AI子目录与AI的git项目关联,有3层意思:

  1. AI子目录使用AI的git项目来填充,内容保持一致。
  2. 当AI的git项目代码有更新,可以拉取更新到Game项目的AI子目录来。
  3. 反过来,当Game项目的AI子目录有变更,还可以推送这些变更到AI的git项目。

用git subtree可以轻松满足上面的需求。

git subtree用法

继续阅读~ 参与评论~

慢速度才显示loading

Loading提示应该是广泛也普通的应用了,其意义都明白。

这里我想说的是,在资源载入速度很快的情境下,loading提示往往一闪而过,所以其实是没必要显示loading的。这应该是可以优化的一个点。

如何优化呢?假设提供loading的两个方法:loading() 和 loaded(),只需loading设置一个比较理想延迟的setTimeout,loaded里面清除timeoutId即可。

继续阅读~ 参与评论~

实用而不墨守成规-Git Flow

据说 Google和Facebook的Git库,代码只有最新版(trunk),没有 release 版本,没有版本号。

其实我很能理解,像我们的项目也不是按照特定git flow(初学者应该借鉴git flow)进行管理的,根据实际情况来使用,这就是实用。

对我们的项目来讲,基本有用的分支就是master和test,develop基本废弃,而master和test是互不干涉的,test可以随意删除和重建,各类新功能从master开出分支,合并到test测试,最后合并到master上线。develop或许有用的地方就是成为开出test分支的基础分支。

引用来自:http://fex.baidu.com/blog/2014/03/G-ossip/

继续阅读~ 参与评论~

Mac OSX下手动安装MongoDB

1、从官网下载osx系统的mongodb包到目录/home/soft,并解压。

cd /home/soft
curl -O http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.6.3.tgz
tar -zxvf mongodb-osx-x86_64-2.6.3.tgz

2、建立一个软连接,并创建一个数据库目录

ln -s ~/home/soft/mongodb-osx-x86_64-2.6.3 /usr/local/mongodb
mkdir -p /usr/local/mongodb/database

继续阅读~ 参与评论~

Full-WebSocket网站应用思路

这几天一直在想的事儿,曾经也有这样的念头一闪而过:全站基于WebSocket的网站应用。

首先是前后端分离的开发模式,借用REST的api做数据交互,那么如果根本不用rest api,而是页面一旦打开就建立一个WebSocket,页面数据的产生和更新全通过socket连接而不是ajax,前后端就完全基于scoket事件来开发,尤其对于Single-Page-App来说, 都用不着angular.js这样的MVVM框架。

比如 UI-1, UI-2…UI-n等共同使用到一条数据data,当data在任意UI上发生了改变并传回了后端,后端处理后更新数据回推到前端,前端基于scoket事件的机制,可以自动响应这一事件的UI更新操作,UI-1,UI-2,UI-3都可以及时得到渲染更新。

socket可以做到单独数据块的传输,细分数据,前端组合数据或可以“逐行”更新界面,BigPipe。

这种开发模式还存在一些待定的问题,比如长期打开一个连接对后端是怎样的一个压力,相比较普通开发模式(大量短期连接)有没有优势。

不知道这种模式是否已经存在于现有网站应用上。当然游戏界应该是有的了,我只是想网站开发也这样呢?

继续阅读~ 参与评论~

1 2 3 4 5 6 7 8 9 10 27 28

全部分类
Books(4)code(7)database(6)html&css(24)java(11)JavaScript(51)jQuery(24)linux(20)python(1)React(1)share(1)soft(4)solution(53)thinking(17)vim(9)WordPress(8)前端优化(12)拓展(33)服务器(33)移动开发(4)自然(22)