`
yiminghe
  • 浏览: 1461425 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
再见了 javaeye,还记得 2008 年 9 月 12 号学生时代写的第一篇博客,感谢你陪伴我5年整!   http://blog.yiminghe.me/2013/09/26/blog-migration/
起   随着 nodejs 的兴起,异步编程成为一种潮流,而异步也对编程风格带来了一些影响,典型的比如在客户端尚不明显的 cps 风格的大量出现:   getUser(function(){ // .... getItem(function(){ // ... }); })     回调嵌套带来性能,栈溢出,以及代码阅读上的一系列的问题,目前有不少解决方案,比如 promise 或引入新的编程原语. 但本次要介绍的是在上世纪60年代就提出来的一个概念 continuation,用来解决该问题。   承   continuation 是一种 ...
一种基于匹配回朔的 css3 选择器引擎实现 介绍 CSS 选择器是一种应用于 DOM 节点查找场景的特定微型语法, 本质上和正则表达式一样都是一种模式匹配语言,灵活使用可以方便得获取指定位置的节点集合。 目前 W3C 推荐标准为 Selectors Level 3 , 在 ie9+ 以及 firefox,chrome,mobile 等浏览器上原生有基本一致的实现,而在 ie 下则需要 使用 javascript 模拟实现,本文介绍一种基于匹配回朔的 css3 选择器引擎实现,特定应用于 ie6,7,8 下。 语法 css 选择器是一种紧凑的语法,根据 css3 规范一个选择器字符 ...
模块化高扩展性的前端框架 KISSY 注:本文为 2013 年 3 月程序员杂志同名文章的完整版。 介绍 伴随着淘宝的快速发展,诞生已三年多的 KISSY 也取得了巨大的成长。 目前应用于阿里集团的多个业务团队,特别是淘宝,天猫,一淘的绝大多数业务都采用了 KISSY, 满足了从前台的 web page 到后台的 web app 再到移动端应用(起步阶段)的广泛需求。 在阿里集团以外也有不少公司和个人使用 KISSY,交流旺旺群成员已将近千人, 在 github 源码库也时常有外部人员参与提交 issue,发起 pull request,另外在 oschina 等开源社区也受到了 ...
cubic-bezier 曲线是 css3 动画的一个重要基石。另一个为 steps (ease 等都是 cubic-bezier 的特殊形式),css3 中的 cubic_bezier 曲线限制了首尾两控制点的位置,通过调整中间两控制点的位置可以灵活得到常用的动画效果,同时 canvas 也进行了相应的支持,也存在相应的工具可以根据想要的曲线得到对应 cubic bezier 曲线的控制点参数。   而 ie(6-9) 却没有相应的支持,为了能在各个平台得到一致的动画效果,则不可避免要在 ie 上通过定时器沿着指定控制点参数的 cubic bezier 曲线来手动更新动画对象的数值. 模 ...
  目前在传统的软件开发领域 [DSL ]() 已经比较普遍,特别是 [Martin Fowler ]() 的突出贡献。而在前端领域尚较少涉及,而如果在前端开发中合理使用 DSL 同样也可以有效得**减少代码数量,提高可读性**,常见的一个应用场景即前 ...
看了下 bootstrap 的导航菜单,立刻非常喜欢,注意是浅色的那个:       而不是黑色的那个:       由于浅色的导航css定义在 docs  中,故没有 less 源码文件可以参考,纯看 css 非常混乱,这次就用 less 重新实现了下浅色导航,实现后才发现 bootsrap 对于细节非常重视,其中样式状态非常之多,和之前搞的语法解析的状态有得一比。 html 代码 重新实现后的导航为 KISSY toolbar 组件,html 如下:     <div class="ks-toolbar> <div class ...

css reset revisit

    正如 javascript 兼容库的作用, css reset 也扮演着类似的角色,css reset 保证了各个浏览器最基本元素渲染的一致性和统一性 ,从而减少在构建复杂界面过程中遇到各个浏览器出现不同展现的问题。以前对于 css 框架关注比较少,而近来随着 bootstrap 以及 lesscss 等的出现,使得构建 css 框架也开始成为一种必要。那么先从 css reset 开始吧。        css reset 从最早的     * {margin:0;padding:0;}       到简单实用的 YUI cssreset ,再到目前流行的 norma ...
最近需要从 textarea 中获取当前输入的光标位置以及绝对坐标,希望达到 github 以及 weibo 输入自动提示的效果,例如:   如今网络上都是零散的技巧(包括曾今的一篇),没有完善可靠的解决方案,于是就直接把这些功能实现 ...
css 2d transform 是 css3 引入的一个新的 css 属性,特别是可以很方便对元素进行旋转和扭曲变换,摆脱了传统枯燥的方方正正的形象,很好玩,但其实 ie 早就支持这种变化了,通过 matrix 滤镜在一些限制条件下完全可以达到同样的效果.   兼容   从角度转化为 matrix 滤镜所需要的矩阵值涉及基础的坐标旋转方面的知识,可参考 wiki . 简单举例:   假设对应 css3 rotate(30deg),那么只要将以下矩阵值赋给 matrix filter 对应元素并设置 SizingMethod='auto expand' 即可:   rad=30* ...
promise 是 commonjs 社区中提出的异步规范,其简洁直观的 api 使得异步读值操作更易于理解和使用,主要 api 包括:   API   Defer   功能实现者调用 Defer() 后产生 Defer 对象,它包括 promise 属性以及 resolve 和 reject 方法   promise 对象   功能调用者通过调用 promise 的 then 方法添加成功回调和失败回调函数。多次调用 then 添加的回调函数最终“并行”执行,互相独立。   resolve/reject   功能实现者通过 resolve/reject 来通知 pr ...
closure compiler 可以进行不少有意思的优化 ,一般只有在编译器优化中才会出现的,比如:   编译时计算(computation during compilation)   优化前:   var x=5*11; alert(x*Math.random());   优化后:   优化时进行直接量计算,得到:   var x=55; alert(x*Math.random());   高级模式下,甚至直接消除没有显式导出的变量 x:   alert(55*Math.random());     复写传播( copy propagati ...
循环依赖是和语言无关的一个设计问题,在各个语言环境下都可能存在循环依赖,甚至引起 stackoverflow,这种大多数是由于不好的设计而导致的,一般来说都可以通过提取公共模块而解决,特定的场景下对应用程序做一定的调整 ...
首先需要声明 html 不能用正则表达式来直接匹配进行内容抽取等处理,这样做的结果很严重 !   Not XHTML Parser   另一点需要注意的是:不是构建 xhtml parser ,如果是 xhtml 的话可采用 parser generator 根据 grammar 直接生成解析器即可,而 html 由于对错误很宽容(比如普遍的标签不闭合问题),具备超强的错误纠正机制,简单的自动 parser 生成并不可行。也即 html 不是一种上下文无关 的语言。   对 html parser 构建有两个思路:   一个思路是半自动生成,先由自动生成的 parser ...
兼容性:   获取剪贴板数据这块各个浏览器间存在很大的兼容性问题:   ie:   通过监听 paster 或 beforepaste ,在全局变量 clipboardData 中取得黏贴数据:   onpaste=function(){ alert(clipboardData.getData("Text");); }   但局限性在于只能取得文本数据而不能取得富文本html.     firefox:   ff 提供了丰富的 api 接口,但需要用户提升权限 这一条就使得 ff 的 api形同虚设。 ...
Global site tag (gtag.js) - Google Analytics