分类“JavaScript”中的存档
2009年9月20日 1:02 下午 - 作者: Dexter.Yy
好久不见,这次发的不是笔记啦,是我在公司内部的前端wiki上更新的文档……这个抛弃所有wiki语法要求用户直接手写语义化html用json配置导航的wiki排版相当漂亮,让我这样的懒人也有了码字的欲望,发起人小麦实在系功德无量……


这篇文章去年就准备写,想用循序渐进的形式推演出一个Module Pattern的最佳实践,不过想法越多,归纳总结表达出来的成本就越高,所以一直拖延……这次发的文档是一个简化版,去掉了各式各样乱七八糟的写法,只包含几个常用的,说明文字也不多主要看代码-__-b……初衷是作为给土豆前端team里新来的同事看的提纲(对了由于某人叛逃到产品设计部门,现在又空出一个名额,有兴趣的同学抓紧时间投简历,这次是魔都总部的职位,不是成都的),所以要解释一下 阅读全文 »
- 分类: 代码, JavaScript, 土豆网
2009年6月29日 8:40 上午 - 作者: Dexter.Yy
好罢这篇本来是我私下做的笔记,我特别喜欢在Evernote上做备忘的笔记,虽然上次看到漏屋老师的文章里说我现在的年龄才刚刚进入记忆力的巅峰期……但是我的自信心仍然屡受打击!比如跟别人讨论The Dark Knight里小丑在医院对检察官说了什么让他变成双面人,我一句对白都想不起来,还有big bang theory s2里penny玩age of conan时的人物名字是”Queen Penelope”,我看的时候印象很深,一个月后就连奥德赛都想不起来了。留份笔记总觉得心里踏实些……啊又跑题了
本文整理了一些最重要(或者说人气比较高罢)的新标准,虽然它们多数还只是w3c的草案,离Recommendation级别还早,却已经成为新一轮浏览器大战中备受追捧的明星,开发者社区里也涌现出大量相关的demo和API封装,有些已经进入生产环境(比如google在iphone上实现的gmail离线应用),其实我觉得如今的web领域里,从厂商私有技术转换成委员会标准再转换成通用技术产生杀手级应用的周期已经显著的加速了 阅读全文 »
- 分类: 代码, JavaScript, CSS, Firefox, XML, Ajax, web服务/应用
2009年6月7日 2:52 上午 - 作者: Dexter.Yy
首先要补充一些MacVim的配置,其实写上篇文章的时候我还在用已经过时的基于Carbon界面的vim for osx,更接近传统的unix版本,但是好久没更新,只支持vim6.0,soureforge上有一个7.2的版本,bug诸多,其中的乱码和字体抗锯齿的问题让我完全无法忍。而MacVim是基于Cocoa开发,支持到7.2,还含有很多讨好mac用户的设计,比如对标签的良好支持,华丽的界面(背景颜色支持透明度,字体抗锯齿更漂亮,几乎跟TextMate的效果没区别)……非常后悔以前没仔细试用这个版本!目前为止只发现行高linespace的设置会无法生效,不过这个bug在最新的快照版里已经修正了。
插播一个道歉:由于spam太多,我前段时间在wordpress黑名单里加了一个很苛刻的条件,把所有评论都挡到待审核列表里去了,好像还直接删了一部分……咳…… 阅读全文 »
- 分类: 代码, JavaScript, OpenSource, 工具
2009年5月30日 10:21 下午 - 作者: Dexter.Yy

vim是编辑器中的神器,但是因为学习曲线比较陡,界面也仿佛从石器时代穿越,广大fashion的前端工作者们难免对其有距离感。其实vim最大的萌点有两个,其一是百科全书般的文本编辑功能,其二是可以随意定制,满足任何与编辑器相关的需求和偏好,比如下面这张便是我在macbook pro上运行vim的截图,不仅语法高亮可以冒充TextMate,功能也几乎一致。 阅读全文 »
- 分类: 代码, JavaScript, OpenSource, 工具
2009年5月16日 4:34 下午 - 作者: Dexter.Yy
原本是小麦的文案,被我改的啰嗦了,虽然最近在地铁上读了The Elements of Style,但是文字要写的简洁真的需要足够冷酷,我热血而且贪婪,不忍心漏掉一个信息点,所以简洁与我无缘……这篇JD发到其他地方的时候可能会删减很多,我先自己留一份……另外虽然这份JD仅仅提出了对雇员的要求,没有介绍雇主,但如果你仍然有兴趣,可以直接给我发email。
职位:Javascript开发工程师
简单的说,我们需要的是能“正确”使用Javascript的开发者。不同情况下,“正确”的标准也不尽然相同,作为土豆的javascript工程师,我们希望你大致符合如下的描述: 阅读全文 »
- 分类: 代码, JavaScript, 土豆网
2009年1月20日 4:31 下午 - 作者: Dexter.Yy
早上收到一封邮件,问的正好是我一直如哽在喉的事情:
对于web开发中的预留退路问题,我一直犹豫不决。在安全方面,自然是不能完全相信JavaScript,这点是确定的。但在用户体验方面,是否真的需要处处”预留退路”,照顾那些不支持JS或者对JS支持不好的用户吗?而UED工程师们又一直在说,不”预留退路”会惹恼数量不少的用户,但却从没有人提起具体会是多少用户、多少比例。不知道YY大神手里有这方面的数据吗?记得YY您在建立Limbo混沌海的时候,就选择了”不预留退路”的方式,不知当初又是出于什么原因这样考虑的呢?非常想听听您对”预留退路”问题的看法,期待您的回信。
阅读全文 »
- 分类: 纯水, JavaScript, 用户体验, Blogger, web服务/应用
2009年1月15日 3:27 上午 - 作者: Dexter.Yy
John Resig老爷在twitter上宣布jQuery1.3正式发布,直接把2加到3反映了这个版本的重要性不同以往,除了重写很多重要方法——比如offset(获取页面上的各种尺寸和位置数据),创建和插入DOM节点(比如append, before之类,这些方法是JQuery以前速度上的瓶颈之一,我就完全不用它们,但是现在速度提高了6倍)——最重要的改变是启用了全新的Sizzle引擎来实现CSS选择器。
从“JQuery”这个名字就能看出,用CSS/XML选择器查询页面元素,是这个javascript库赖以起家的绝活,最早可以追溯到Dean Edwards的cssQuery,和Simon Willison的getElementsBySelector,但是在那个上古时代(史料记载中无正式名称,我们可以称之为“Age of the First Bubble”,或者“DHTML Era”,虽然也有学者认为希腊神话中描述的黑铁时代(Iron Age)就是指那段时间……dojo创始人Alex Russell,以及prototype创始人Sam Stephenson,都是来自那个时代地淫~), 阅读全文 »
- 分类: 代码, JavaScript
2008年12月31日 3:00 上午 - 作者: Dexter.Yy
这篇文章将会探讨一下在网页里做异步的跨域请求,以及借助iframe来获取数据的方法。
呃,本来我觉得这个话题没什么好说的了,因为如今好像没有几个web应用能离开这类request,google和facebook用iframe来做comet的时候也基本上把能hack的都hack遍了,所以我估计开发者社区里应该早就形成所谓的”最佳实践”(best practices)了罢。不过最近看到有一些关注前端技术的blog(比如realazy)在讨论相关的话题,发现还是有一些东西值得写下来。 阅读全文 »
- 分类: 代码, JavaScript, Ajax, 土豆网
2008年11月22日 10:48 下午 - 作者: Dexter.Yy
刚才在IBM DW上看到这篇《JavaScript 技巧与高级特性》,其中关于arguments.callee的部分有一个用递归来求斐波那契数列的例子,简化一下是这样的:
- //经典递归
- function fibonacci(n) {
- return (function(n) {
- if (n == 1 || n == 2)
- return 1;
- return arguments.callee(n - 1) + arguments.callee(n - 2);
- })(n);
- }
-
- fibonacci(4); //result: 3
- fibonacci(5); //result: 5
- fibonacci(10); //result: 55
这种教科书式的写法出镜率很高,在很多文章里都可以看到,但是速度也特别慢,曾经看到过有些人就拿这种例子来说明“递归的效率低”或者“用javascript做函数式编程效率低”,然后给出迭代的写法……
更新:我今天老老实实的读了SICP的第一章之后发现书中对这个问题其实有很严谨的解释,为了防止自己被骂成民科,赶紧修正了一些说法,加了删除线的文字都是有错误的,新增加的文字用粗体。 阅读全文 »
- 分类: 代码, JavaScript
2008年5月31日 1:28 上午 - 作者: Dexter.Yy
首先要说一下目前的矛盾现状:一方面feed订阅和在线阅读器都还不够普及,多数普通网民就算经常访问blog网站,也还没养成订阅的习惯,主要还是通过门户媒体获取资讯,另一个方面,较早开始接触RSS订阅的人——特别是那些blogger和互联网geek们——不但已经对各种在线或离线的阅读器了如指掌,把阅读feed变成了上网的主要活动和习惯,而且很多人收集的feed已经多到让自己烦恼焦虑的程度。后者努力的整理删减自己的订阅列表,前者却经常抱怨不知道怎么寻找可订阅的信息来源…………这种不平衡于是引发了一种禁断的活动——朋友之间交换OPML订阅列表…… 阅读全文 »
- 分类: JavaScript, CSS, 界面, XML, Web2.0, web服务/应用
2008年4月27日 10:57 上午 - 作者: Dexter.Yy
realazy在blog上给出了一个JavaScript Memoization的实现,Memoization就是函数返回值的缓存,比如一个函数参数与返回结果一一对应的hash列表,wiki上其实也有详细解释,我不细说了,只讨论一下具体实现的问题,realazy文中的代码有一些问题,比如直接用参数拼接成的字符串作为查询缓存结果的key,如果参数里包括对象或数组的话,就很难保证唯一的key,还有1楼评论里提到的:[221,3]和[22,13]这样的参数也无法区分。
那么来改写一下,首先还是用hash表来存放缓存数据: 阅读全文 »
- 分类: 代码, JavaScript, Ajax
2008年3月8日 3:04 上午 - 作者: Dexter.Yy
第一,标题里的app指的是根正苗红老实本分的Web App,昨天的这个时候,对是在昨天,iPhone Web App就等同于iPhone App,咳咳,虽然现在不是了,但我这笔记是两个星期前的……
第二,不全,主要是我关心的一些细节,以及我自己理解的一些东西…… 阅读全文 »
- 分类: JavaScript, CSS, Apple, 界面, web服务/应用
2007年4月19日 1:08 上午 - 作者: Dexter.Yy
今天被土豆网的lex鄙视了,因为我的BLOG在Safari里根本无法浏览——loading永远不会结束,很明显,这意味着webkit引擎不支持上次提到的判断DOM加载完成的方法。
既然开了新文章,就干脆重新回顾一下这个问题:如今的javascript编程非常依赖DOM(文档对象模型),对HTML和XML来说,DOM是一个应用程序接口 (API) ,对JS来说,DOM为文档创建了程序可以使用的对象和方法,DOM把前端程序和内容结合在一起,就好像ORM(对象-关系映射,比如PEAR库里的DB_DataObject)把后台程序和关系数据库结合在一起,形象点说它是一颗节点树,没有这棵树的支撑,很多JS方法就无法使用。 阅读全文 »
- 分类: JavaScript, Ajax