Limbo: 混沌位面 ———— 这里既空虚又充实,没有规则,没有约束,创造来自思考,生存依赖想像,现实源自梦想。
首页 给我发Email! 订阅

分类“JavaScript”中的存档

iframe和异步的跨域请求,结合土豆网的实例

tudou_frame.jpg这篇文章将会探讨一下在网页里做异步的跨域请求,以及借助iframe来获取数据的方法。

呃,本来我觉得这个话题没什么好说的了,因为如今好像没有几个web应用能离开这类request,google和facebook用iframe来做comet的时候也基本上把能hack的都hack遍了,所以我估计开发者社区里应该早就形成所谓的”最佳实践”(best practices)了罢。不过最近看到有一些关注前端技术的blog(比如realazy)在讨论相关的话题,发现还是有一些东西值得写下来。 阅读全文 »

递归和递推:javascript求斐波那契数列的尾递归方法

刚才在IBM DW上看到这篇《JavaScript 技巧与高级特性》,其中关于arguments.callee的部分有一个用递归来求斐波那契数列的例子,简化一下是这样的:

  1. //经典递归
  2. function fibonacci(n) { 
  3.     return (function(n) { 
  4.         if (n == 1 || n == 2) 
  5.             return 1;
  6.         return arguments.callee(n - 1) + arguments.callee(n - 2);
  7.     })(n);
  8. } 
  9.  
  10. fibonacci(4); //result: 3
  11. fibonacci(5); //result: 5
  12. fibonacci(10); //result: 55

这种教科书式的写法出镜率很高,在很多文章里都可以看到,但是速度也特别慢,曾经看到过有些人就拿这种例子来说明“递归的效率低”或者“用javascript做函数式编程效率低”,然后给出迭代的写法……

更新:我今天老老实实的读了SICP的第一章之后发现书中对这个问题其实有很严谨的解释,为了防止自己被骂成民科,赶紧修正了一些说法,加了删除线的文字都是有错误的,新增加的文字用粗体。 阅读全文 »

新项目”YyOPML”——把OPML转换成web界面——大家一起来晒feed订阅列表吧!

rss-opml.jpg首先要说一下目前的矛盾现状:一方面feed订阅和在线阅读器都还不够普及,多数普通网民就算经常访问blog网站,也还没养成订阅的习惯,主要还是通过门户媒体获取资讯,另一个方面,较早开始接触RSS订阅的人——特别是那些blogger和互联网geek们——不但已经对各种在线或离线的阅读器了如指掌,把阅读feed变成了上网的主要活动和习惯,而且很多人收集的feed已经多到让自己烦恼焦虑的程度。后者努力的整理删减自己的订阅列表,前者却经常抱怨不知道怎么寻找可订阅的信息来源…………这种不平衡于是引发了一种禁断的活动——朋友之间交换OPML订阅列表…… 阅读全文 »

JavaScript Memoization:让函数也有记忆功能

ltp.jpgrealazy在blog上给出了一个JavaScript Memoization的实现,Memoization就是函数返回值的缓存,比如一个函数参数与返回结果一一对应的hash列表,wiki上其实也有详细解释,我不细说了,只讨论一下具体实现的问题,realazy文中的代码有一些问题,比如直接用参数拼接成的字符串作为查询缓存结果的key,如果参数里包括对象或数组的话,就很难保证唯一的key,还有1楼评论里提到的:[221,3]和[22,13]这样的参数也无法区分。

那么来改写一下,首先还是用hash表来存放缓存数据: 阅读全文 »

iPhone App开发笔记

index_steps_2.jpg第一,标题里的app指的是根正苗红老实本分的Web App,昨天的这个时候,对是在昨天,iPhone Web App就等同于iPhone App,咳咳,虽然现在不是了,但我这笔记是两个星期前的……

第二,不全,主要是我关心的一些细节,以及我自己理解的一些东西…… 阅读全文 »

DOM加载事件的终极解决方案

domready.jpg今天被土豆网的lex鄙视了,因为我的BLOG在Safari里根本无法浏览——loading永远不会结束,很明显,这意味着webkit引擎不支持上次提到的判断DOM加载完成的方法。

既然开了新文章,就干脆重新回顾一下这个问题:如今的javascript编程非常依赖DOM(文档对象模型),对HTML和XML来说,DOM是一个应用程序接口 (API) ,对JS来说,DOM为文档创建了程序可以使用的对象和方法,DOM把前端程序和内容结合在一起,就好像ORM(对象-关系映射,比如PEAR库里的DB_DataObject)把后台程序和关系数据库结合在一起,形象点说它是一颗节点树,没有这棵树的支撑,很多JS方法就无法使用。 阅读全文 »

奇幻大辞典online版完工!

fd1.jpgA Long Time Ago in a Galaxy Far, Far Away… Linkcd老爷用FoxPro做了一个辞典软件,虽然没有金山糍粑那样的取词功能,但“奇幻大辞典”拥有专业的奇幻游戏术语词库,成为了广大玩家和苦力翻译们必备的神器,如今回想起来,辞典的最后一次更新居然已经是四年前的事……

时代已经不同了!如今linkcd老爷在惠普搞.net,FoxPro、Delphi这类玩意都早已成为过时的技术,基于Web的应用取代桌面软件成为一种越来越明显的潮流,单机PC游戏陷入低谷,”online”的后缀出现在所有经典名词的后面比如魔戒DND科南战锤大航海……其实我想说的就是,奇幻大辞典也与时俱进发布全新的在线版了! 阅读全文 »

YY专用Wordpress主题终于完成了……

mytheme上次Blogger被GFWED的时候,我说过坚决不转移到WORDPRESS是因为它太迎合我把东西做复杂的欲望,现在实践证明确实如此……

由于形势所迫(不仅因为GFW),我不得不放弃Blogger重新建立一个稳定的BLOG,熟悉WP的插件加上制作这个主题花了4天时间,超乎想象了……时间主要浪费在设计、浏览器兼容上面……本帖我将用来发牢骚,并且分享一些经验教训,没兴趣的同学可以跳转到其他地方去了…… 阅读全文 »

新作品:可以自由编辑的Google地图,700行javascript+70行php

以前在龙骑士城堡提过一种想法,就是用GOOGLE MAPS来做桌面游戏玩家的主题地图。当时推荐的是EEMAP的服务,然则这个网站的注册一直需要邀请码,很不方便,而且界面难看,速度也很慢……

当时就想过自己来做一个GOOGLE MAPS API的应用,但一直没时间看API文档。这几天总算有空闲(辞职就是好哑),把想象中的东西基本上做出来了,我把它叫作Free Map Folio v1.0(取自DND设定集的名字),可以像维基百科那样自由编辑,前端是静态的HTML,数据库用xml,方便部署,而交互操作的程序完全用Javascirpt来写 阅读全文 »

YY流界面之动态图标导航栏

做这个导航栏的初衷,是想在公司产品的后台界面里,模仿MAC OS X系统的dock效果,所谓dock,就是OS X桌面底部那条显眼的工具栏,我的UBUNTU桌面里也有类似的效果……

实际上我也没用过MAC,所以是凭想象做的,演示页面在此

右上角的导航栏是默认的效果,鼠标滑过时图标变大,会推挤旁边的图标。 阅读全文 »

[造车轮计划]今天写了一个右键菜单的JS类

右键菜单在web交互设计里并不是很常用的东西,因为普通用户在浏览网页时很少会想到能用右键来操作,就像他们很难习惯拖拽一样,但在某些环境中,拖拽会成为很自然的操作——其实都跟桌面软件的操作习惯有关。所以右键菜单在某些情况下也是很有用的,抓虾的feed列表里就可以使用右键菜单,如果网页里调用了google maps,而且占据了很大的客户端面积,用右键菜单也会更方便。最近做的项目里就要用到这个,我写了一个简单的右键菜单,并且学习把它封装成一个类。
阅读全文 »

会员管理界面的交互效果

做了一个多月的项目总算快结束了。一个网站的开发到了后期总是很无趣的,不仅有视觉疲劳,而且每天都只能做一些修修补补的事情,没有新想法、没有新挑战,从早到晚都要盯着密密麻麻的JS代码/CSS代码——改代码比写代码要痛苦多了……反正,做这类事情让人很容易疲劳……还会让人没力气写BLOG……

最近被经理调出来做下一个项目的前期工作,今天做了一个会员管理的页面,用来给客户做演示,“会员管理”听上去就只是那种无趣的后台页面,不过经理要求加入一些富客户端技术,因为是web2.0网站嘛-___-b ,于是我便正好借此机会练习一下: 阅读全文 »

在beta版Blogger的首页显示文章摘要

beta版的Blogger已经能实现大部分我想要的功能了,但是与wordpress这类专业的BLOG系统比起来,还是有两个很明显的缺陷:

1. 首页只有全文显示模式,有些blogger发表的文章可能比较长,也可能更新频率比较快,多数人都会希望首页只显示摘要。
2. 发表评论需要跳转到新页面,提交之后默认显示评论的页面也是一个与BLOG模板无关的新页面,这种设计不符合用户的习惯。 阅读全文 »

GOSPEL OF YY

    "What *defines* justice, Vhailor? What IS it, really?"

    *JUSTICE is defined by LAW.*

    "And what is law, Vhailor?"

    *LAW is the tool by which JUSTICE is served.*

    "And what makes the laws, Vhailor?"

    *LAW is defined by JUSTICE."

    -- Vhailor & Nameless One
    Planescape: Torment