中文输入法(包括CJK输入法)都有的问题:如果<input上监听input事件,在Win/Mac上每次按键都会触发。例如用拼音输入法输入动漫驿站,用户可能按键d.o.n.g.m.a…会触发13次事件,但其实只需要触发一次处理输入后的结果。早年间有很多trick的做法,比如keyup判断输入框内容是否是中文。现在是可以放心使用composition事件了。
场景是:使用Ant Design的…
中文输入法(包括CJK输入法)都有的问题:如果<input上监听input事件,在Win/Mac上每次按键都会触发。例如用拼音输入法输入动漫驿站,用户可能按键d.o.n.g.m.a…会触发13次事件,但其实只需要触发一次处理输入后的结果。早年间有很多trick的做法,比如keyup判断输入框内容是否是中文。现在是可以放心使用composition事件了。
场景是:使用Ant Design的…
不知道什么时候开始的以讹传讹,React变成了“很难入门”的框架,但如果只讨论使用而不是源码,React其实是近几年主流前端框架中最轻量、最简单的:只专注于视图(View)的处理,从发布至今多次拆分模块(拆出了ReactDOM,拆分了原来的addons),让React核心部分更简单。当然,React的生态很庞大,刚上手就面对整个生态会觉得复杂,但如果是用React完成日常工作中最常见的应用场景——前端读取后端数据实现增删该查,是非常简单的。…
django-webpack-loader是Django去年的热门App之一,实现Django和Webpack的绑定。做法很简洁,就是用一个nodejs模块处理Webpack的输出,Django再去读取这个模块生成的JSON文件,加载对应的bundle文件就行了。最近在cygwin里重新部署了一次,分享其中的关键点。环境是:
…Django 1.9.5
NodeJS v6.0.0
Win7(64)+Cygwin2.4.1
经过媒体的渲染,目前大众认为的HTML5大致等于:酷炫的效果,复杂的技术,手机能正常浏览的网页。于是经常有人问我:某个功能,某个效果,HTML5能实现吗?这种表现层的问题,如果排除平台因素回答就是:以前实现不了的,HTML5还是实现不了;以前能实现的,HTML5通常能实现得更好。比如通知,以前用轮询,现在可以用websocket;比如想直接读取客户Windows目录下的文件(…),现在(正常情况下)还是实现不了……
Erya是基于SemanticUI开发的内容发布系统,主要用来搭建BBS。遵守GPLV3协议。

系统的后端是简单的发布主题/回复/评论的功能,目前是基于Django(Python)的。使用Python3.2 + Django1.7的架构,Python2.7测试通过。
在界面上模仿NodeBB,前端使用SemanticUI,支持自适应,编辑器使用Quilljs,同样也是支持自适应的:
因为是面向国内中文用户,所以没有Google的JS/字体API等容易被墙掉的性能,用户头像是使用Gravatar的,因为目前Gravatar可以正常访问。…
11年刚开始用前端MVC框架时写过一篇文章,当时Knockout和Backbone都在用,但之后的项目全是在用Backbone,主要因为它简单、灵活,无论是富JS应用还是企业网站都用得上。相比React针对View和单向数据流的设计,Backbone更能体现MVC的思路,所以针对它写一篇入门范例,说明如下:
…1. 结构上分4节,介绍Model/View/Collection,实现从远程获取数据显示到表格且修改删除;
本来是想介绍Semantic-UI的,但如果只介绍这个框架,没什么内容,框架相关feature站点上有不需要说,所以干脆列出自己常用的几个前端框架,算是做个阶段性总结。
本文的核心是侧重于HTML/CSS的框架,JS框架或以JS为核心的框架不讨论(比如YUI);多屏已是既定事实,虽然不是所有开发都要考虑自适应,但有自适应功能至少说明了这框架短期内不会被淘汰,所以不带自适应功能的框架不讨论(比如flaminwork);非开源、不可商用,或是需要付费的框架不讨论(比如easyframework)。…
Django带了Forms框架,但如果不用Model Form,就要把在Model中定义的字段再写一遍。而且现在项目中都会用到前端工具包/框架,比如Bootstrap,于是as_table/as_ul/as_p就不能直接用了,每个字段都要手动写到HTML里。我之前是用django-crispy-forms这个模块来简化。
Backbone.js是一个基础框架,没有生成表单的功能,但有一个依赖于Backbone.js,很好用的Forms框架——…
Web应用的功能越来越强,Javascript代码也越来越多,大量的JS代码要以何种架构来组织就成了一个亟待解决的问题。老牌软件架构模式MVC(Model-View-Controller)就是一种相当不错的方案,虽然它定义不明确需要很多时间来思考如何组织,崇尚代码分离增加了调试难度,但毕竟脸熟(……),从用CakePHP的时候就接触过这个概念,以我能理解的方式描述就是:Models用来处理数据,View将处理结果呈现给用户,Controller用来连接这两者。所以一个Web应用的流程通常是这样的:…
上次振宇介绍duoshuo的开发,前台用的是backbone和LESS,backbone很久之前mentor就提到过,当时没弄懂,等下周休息的时候抽空学学,LESS倒是没什么学习成本。
LESS一种动态样式语言,简单来说就是对CSS语言的扩展,可以类比于coffeescript对javascript提炼。我因为javascript写习惯了,转到coffeescript效率不升反降。但用LESS重写了几个CSS文件,绝对是快了很多。因为LESS没有改变CSS的写法(唯一变化的是注释可以用//了),所以没有转换障碍。LESS拥有语言的特征,例如变量、函数、命名空间等,和只是样式表的CSS比起来灵活了许多。…