<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.limboy.com/styles/feedsky8.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0"><channel><atom:link href="http://feed.limboy.com" type="application/rss+xml" ref="self"></atom:link><fs:self_link href="http://feed.feedsky.com/dexteryy" type="application/rss+xml"></fs:self_link><lastBuildDate>Fri, 30 May 2008 17:28:30 GMT</lastBuildDate><title>YY in Limbo 混沌海狂想</title><description>这里既空虚又充实，没有规则，没有约束，创造来自思考，生存依赖想像，现实源自梦想</description><image><url>http://www.feedsky.com/feed/dexteryy/sc/gif</url><title>YY in Limbo 混沌海狂想</title><link>http://www.limboy.com</link></image><link>http://www.limboy.com</link><language>en</language><pubDate>Sun, 01 Jun 2008 02:11:12 GMT</pubDate><dc:date>2008-06-01T02:11:12Z</dc:date><dc:language>en</dc:language><item><title>新项目”YyOPML”——把OPML转换成web界面——大家一起来晒feed订阅列表吧！</title><link>http://item.feedsky.com/~feedsky/dexteryy/~6072067/79443534/4180063/1/item.html</link><content:encoded>&lt;p&gt;&lt;a href='http://www.limboy.com/2008/05/31/yyopml-release/rss-opmljpg-2/' rel='attachment wp-att-194' title='rss-opml.jpg'&gt;&lt;img src='http://www.limboy.com/wp-content/uploads/2008/06/rss-opml.jpg' alt='rss-opml.jpg' style=&quot;float:left;border:0;margin:0 5px 5px 0;&quot; /&gt;&lt;/a&gt;首先要说一下目前的矛盾现状：一方面feed订阅和在线阅读器都还不够普及，多数普通网民就算经常访问blog网站，也还没养成订阅的习惯，主要还是通过门户媒体获取资讯，另一个方面，较早开始接触RSS订阅的人——特别是那些blogger和互联网geek们——不但已经对各种在线或离线的阅读器了如指掌，把阅读feed变成了上网的主要活动和习惯，而且很多人收集的feed已经多到让自己烦恼焦虑的程度。后者努力的整理删减自己的订阅列表，前者却经常抱怨不知道怎么寻找可订阅的信息来源…………这种不平衡于是引发了一种禁断的活动——朋友之间交换OPML订阅列表……&lt;/p&gt;
&lt;p&gt;OPML是Google Reader乃至所有阅读器都支持导入导出的一种XML规范的“大纲(outline)”数据文件（题头图片里那个蓝色的方块就是OPML的标志，跟feed的著名橙色标志对应，说实话写文前我还不知道OPML也有标志……囧），通常包含用户订阅的所有feed，之所以说是“禁断”……是因为交换这种文件，直接导入到双方的阅读器里之后，很容易使信息爆炸的程度翻倍，而且对于这些导入的feed，不能像原主人那样清楚来历和订阅的理由，于是也不知道该如何看……因此直接交换的下场通常都很惨……&lt;/p&gt;
&lt;p&gt;这个项目就是我的解决方案：让导出的OPML源文件支持直接在浏览器里作为网页来展示，而界面上使用完全展开的并排布局，可以像hao123或谷歌网站导航那样一目了然的查找网址，让访问者自己来挑选值得订阅的feed。(不过，你要有使用标签分类feed的习惯，否则显示效果肯定不好…不过那样的话，就算用常规的树状布局，效果也很差的…)&lt;/p&gt;
&lt;p&gt;以下是示例页面，这里的“dexteryy.xml”就是我从自己的google reader里导出的OPML文件，包含完整的订阅列表：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.limboy.com/yyopml/dexteryy.xml&quot; target=&quot;_blank&quot;&gt;http://www.limboy.com/yyopml/dexteryy.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;还有谁像我一样没什么隐私担心暴露愿意分享OPML的话，可以留下网址或opml文件，我会收集到上面来……&lt;/p&gt;
&lt;p&gt;项目主页：&lt;a href=&quot;http://code.google.com/p/yyopml/&quot; target=&quot;_blank&quot;&gt;http://code.google.com/p/yyopml/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载程序源码：&lt;a href=&quot;http://code.google.com/p/yyopml/downloads/list&quot; target=&quot;_blank&quot; target=&quot;_blank&quot;&gt;http://code.google.com/p/yyopml/downloads/list&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使用方法是：用文本编辑器打开OPML文件，在第一行后面加上以下内容：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;xml-stylesheet&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;style/yyopml.xsl&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;text/xsl&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;然后跟解压出来的style目录一起传到服务器上，保持在同一个目录里，就可以直接用浏览器看opml文件了。&lt;/p&gt;
&lt;p&gt;目前我提供的界面主题有两种，都是如上所说的“网站导航”风格，一个是灰色的面板风格（默认），一个是GOOGLE风格，对应的CSS文件分别是style/ui/yyopml_panel.css和style/ui/yyopml_google.css&lt;/p&gt;
&lt;p&gt;支持在页面里切换皮肤，如果要更换默认皮肤，请修改style/ui/yyopml.js里的以下代码：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Blue;&quot;&gt;theme&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;theme&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; || &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;panel&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;把“panel”换成你要改成默认设置的css文件的后缀，比如&amp;#8221;google&amp;#8221;。&lt;/p&gt;
&lt;p&gt;也可以在网址里加上参数，直接调用某种皮肤，比如&amp;#8221;&lt;a href=&quot;http://www.limboy.com/yyopml/dexteryy.xml#theme=google&quot; target=&quot;_blank&quot;&gt;http://www.limboy.com/yyopml/dexteryy.xml#theme=google&lt;/a&gt;&amp;#8220;，可以用google风格作为默认皮肤打开页面。&lt;/p&gt;
&lt;p&gt;==================面向Coder的分界线====================&lt;/p&gt;
&lt;p&gt;源码包括一个用来把XML转换成HTML来显示的XSL文件，和界面效果相关的文件。其中yy_core.js是我开发中的一个轻量级/FP风格的javascript库，很多代码都基于jquery，同名的方法接口也尽量跟jquery保持一致，命名空间跟土豆网的js库一样叫“TUI”，提供DOM选择器（我重写的精简功能）和一些常用工具，比jquery小很多(压缩后12k)，这个东西其实年初就想发出来……但是后来懒了，这次考虑到完成度的问题，也懒得在google code里开项目了，源码包里的yy_core.js是一个base64压缩过的版本……&lt;/p&gt;
&lt;p&gt;另外，yyopml.js里有一个滚动条插件，是做这个项目的时候心血来潮写的，可以用类似这样的代码：$(&amp;#8221;.list&amp;#8221;).scrollbar(); 给那些外部容器overflow:hidden，内部容器高度超长的元素加上CSS定义的滚动条，支持鼠标滚轮，因为是基于“迷你jquery”来开发，所以应该很容易改成jquery的插件，厌倦了overflow:scroll滚动条的同学可以参考一下。&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=638109d014e6279a366edd7250769bf9&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=638109d014e6279a366edd7250769bf9&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=87b15d52b8a2ebc651cb844ad4ea1eda&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=87b15d52b8a2ebc651cb844ad4ea1eda&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=e0de57c4fa00616b855bd3ee93c2cd73&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=e0de57c4fa00616b855bd3ee93c2cd73&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=6dd6e9255b42e0e8c8e7bb017a81723a&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=6dd6e9255b42e0e8c8e7bb017a81723a&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</content:encoded><wfw:commentRss>http://www.limboy.com/2008/05/31/yyopml-release/feed/</wfw:commentRss><description>首先要说一下目前的矛盾现状：一方面feed订阅和在线阅读器都还不够普及，多数普通网民就算经常访问blog网站，也还没养成订阅的习惯，主要还是通过门户媒体获取资讯，另一个方面，较早开始接触RSS订阅的人——特别是那些blogger和互联网geek们——不但已经对各种在线或离线的阅读器了如指掌，把阅读feed变成了上网的主要活动和习惯，而且很多人收集的feed已经多到让自己烦恼焦虑的程度。后者努力的整理删减自己的订阅列表，前者却经常抱怨不知道怎么寻找可订阅的信息来源…………这种不平衡于是引发了一种禁断的活动——朋友之间交换OPML订阅列表……
OPML是Google Reader乃至所有阅读器都支持导入导出的一种XML规范的“大纲(outline)”数据文件（题头图片里那个蓝色的方块就是OPML的标志，跟feed的著名橙色标志对应，说实话写文前我还不知道OPML也有标志……囧），通常包含用户订阅的所有feed，之所以说是“禁断”……是因为交换这种文件，直接导入到双方的阅读器里之后，很容易使信息爆炸的程度翻倍，而且对于这些导入的feed，不能像原主人那样清楚来历和订阅的理由，于是也不知道该如何看……因此直接交换的下场通常都很惨……
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.limboy.com/2008/05/31/yyopml-release/&quot; title=&quot;新项目&quot;YyOPML&quot;——把OPML转换成web界面——大家一起来晒feed订阅列表吧！&quot; target=&quot;_blank&quot;&gt;阅读全文——共1856字&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=638109d014e6279a366edd7250769bf9&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=638109d014e6279a366edd7250769bf9&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=87b15d52b8a2ebc651cb844ad4ea1eda&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=87b15d52b8a2ebc651cb844ad4ea1eda&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=e0de57c4fa00616b855bd3ee93c2cd73&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=e0de57c4fa00616b855bd3ee93c2cd73&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=6dd6e9255b42e0e8c8e7bb017a81723a&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=6dd6e9255b42e0e8c8e7bb017a81723a&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</description><category>Web2.0</category><category>web服务/应用</category><category>CSS</category><category>XML</category><category>JavaScript</category><category>界面</category><pubDate>Sat, 31 May 2008 01:28:30 +0800</pubDate><author>dexter_yy</author><comments>http://www.limboy.com/2008/05/31/yyopml-release/#comments</comments><guid isPermaLink="false">http://www.limboy.com/2008/05/31/yyopml-release/</guid><dc:creator>dexter_yy</dc:creator><fs:srclink>http://www.limboy.com/2008/05/31/yyopml-release/</fs:srclink><fs:srcfeed>http://www.limboy.com/feed/rss2/</fs:srcfeed><fs:itemid>feedsky/dexteryy/~6072067/79443534/4180063</fs:itemid></item><item><title>游戏类暨非IT类blog读者订阅对比报告</title><link>http://item.feedsky.com/~feedsky/dexteryy/~6072067/77676445/4180063/1/item.html</link><content:encoded>&lt;p&gt;&lt;a href='http://www.limboy.com/2008/05/24/non-it-feed/readjpg/' rel='attachment wp-att-191' title='read.jpg'&gt;&lt;img src='http://www.limboy.com/wp-content/uploads/2008/05/read.jpg' alt='read.jpg' style=&quot;float:left;margin:0 5px 0 0;border:0;&quot; /&gt;&lt;/a&gt;1，我是标题党。&lt;/p&gt;
&lt;p&gt;2，数据取自当日，Google Reader的show details功能。&lt;/p&gt;
&lt;p&gt;3，选择标准一是要比较有代表性的，二是要跟it不沾边（游戏开发除外），在我熟悉的游戏领域里细分的更多，可以窥斑见豹，而且没有仅限于blog，只要是提供feed的网站就行。&lt;/p&gt;
&lt;p&gt;4，feed订阅量是评价一个BLOG的指标，但一般订阅总数其实包含了大量重复的用户，比如有人同时在抓虾，鲜果，google reader，bloglines，豆瓣订阅了同一个blog，甚至是用浏览器自带的书签功能。如果要作横向比较，这个数字就并非很靠谱了，因为建立时间越早，用户越熟悉IT的BLOG，重复订阅的水分会越大。所以我在这里统一比较google reader的订阅量，作为目前几乎稳居霸主地位的feed阅读工具，而且杜绝了重复订阅，google reader的统计数字更有意义。&lt;/p&gt;
&lt;p&gt;5，只是列举和对比，请用自己的智商分析&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：NTRPG&lt;br /&gt;
地址：&lt;a href=&quot;http://www.ntrpg.org/&quot; target=&quot;_blank&quot;&gt;http://www.ntrpg.org/&lt;/a&gt;&lt;br /&gt;
类型：群体blog，社区，portal&lt;br /&gt;
主题：PC游戏，桌面游戏，TRPG，hardcore玩家&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 0.0&lt;br /&gt;
Subscribers: 297&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：RPGdot&lt;br /&gt;
地址：&lt;a href=&quot;http://www.rpgdot.com/&quot; target=&quot;_blank&quot;&gt;http://www.rpgdot.com/&lt;/a&gt;&lt;br /&gt;
类型：资讯站（国外）&lt;br /&gt;
主题：PC游戏，RPG&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 43.4&lt;br /&gt;
Subscribers: 142&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：EN World&lt;br /&gt;
地址：&lt;a href=&quot;http://www.enworld.org/&quot; target=&quot;_blank&quot;&gt;http://www.enworld.org/&lt;/a&gt;&lt;br /&gt;
类型：社区（国外）&lt;br /&gt;
主题：TRPG&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 11.9&lt;br /&gt;
Subscribers: 397&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：GamingReport&lt;br /&gt;
地址：&lt;a href=&quot;http://www.gamingreport.com&quot; target=&quot;_blank&quot;&gt;http://www.gamingreport.com&lt;/a&gt;&lt;br /&gt;
类型：新闻投递（国外）&lt;br /&gt;
主题：桌面游戏&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 25.2&lt;br /&gt;
Subscribers: 342&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：Joystiq&lt;br /&gt;
地址：&lt;a href=&quot;http://www.joystiq.com/&quot; target=&quot;_blank&quot;&gt;http://www.joystiq.com/&lt;/a&gt;&lt;br /&gt;
类型：商业性blog（国外）&lt;br /&gt;
主题：主流video game&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 146.3&lt;br /&gt;
Subscribers: 23,757&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：1up&lt;br /&gt;
地址：&lt;a href=&quot;http://www.1up.com/&quot; target=&quot;_blank&quot;&gt;http://www.1up.com/&lt;/a&gt;&lt;br /&gt;
类型：资讯站，portal（国外）&lt;br /&gt;
主题：主流video game&lt;br /&gt;
======================&lt;br /&gt;
Posts per week:	105.0&lt;br /&gt;
Subscribers: 3,895&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：Gamasutra News&lt;br /&gt;
地址：&lt;a href=&quot;http://www.gamasutra.com/php-bin/news_index.php&quot; target=&quot;_blank&quot;&gt;http://www.gamasutra.com/php-bin/news_index.php&lt;/a&gt;&lt;br /&gt;
类型：资讯站，社区，Portal（国外）&lt;br /&gt;
主题：游戏开发&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 85.4&lt;br /&gt;
Subscribers: 2,414&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：乌龙的BLOG（TGFC站长）&lt;br /&gt;
地址：&lt;a href=&quot;http://blog.sina.com.cn/wulongx&quot; target=&quot;_blank&quot;&gt;http://blog.sina.com.cn/wulongx&lt;/a&gt;&lt;br /&gt;
类型：个人blog&lt;br /&gt;
主题：Console game&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 19.6&lt;br /&gt;
Subscribers: 78&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：风云的BLOG（网易的明星游戏程序员）&lt;br /&gt;
地址：&lt;a href=&quot;http://blog.codingnow.com/&quot; target=&quot;_blank&quot;&gt;http://blog.codingnow.com/&lt;/a&gt;&lt;br /&gt;
类型：个人blog&lt;br /&gt;
主题：游戏开发&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 1.2&lt;br /&gt;
Subscribers: 1,385&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：World of Ming（明星玩家）&lt;br /&gt;
地址：&lt;a href=&quot;http://cn.worldofming.com/&quot; target=&quot;_blank&quot;&gt;http://cn.worldofming.com/&lt;/a&gt;&lt;br /&gt;
类型：个人blog&lt;br /&gt;
主题：竞技游戏，WOW&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 4.7&lt;br /&gt;
Subscribers: 93&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：龙骑士城堡&lt;br /&gt;
地址：&lt;a href=&quot;http://www.cndkc.net/&quot; target=&quot;_blank&quot;&gt;http://www.cndkc.net/&lt;/a&gt;&lt;br /&gt;
类型：新闻/推介，社区&lt;br /&gt;
主题：奇幻文学&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 3.3&lt;br /&gt;
Subscribers: 87&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：朱學恆的路西法地獄&lt;br /&gt;
地址：&lt;a href=&quot;http://blogs.myoops.org/lucifer.php&quot; target=&quot;_blank&quot;&gt;http://blogs.myoops.org/lucifer.php&lt;/a&gt;&lt;br /&gt;
类型：个人blog&lt;br /&gt;
主题：网络名人，宅文化&lt;br /&gt;
======================&lt;br /&gt;
Posts per week:	5.4&lt;br /&gt;
Subscribers: 827&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：漫谈 - 我们的ACG&lt;br /&gt;
地址：&lt;a href=&quot;http://www.acgtalk.com/&quot; target=&quot;_blank&quot;&gt;http://www.acgtalk.com/&lt;/a&gt;&lt;br /&gt;
类型：群体blog&lt;br /&gt;
主题：动漫&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 5.4&lt;br /&gt;
Subscribers: 513&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：Blog@Newsarama&lt;br /&gt;
地址：&lt;a href=&quot;http://blog.newsarama.com/&quot; target=&quot;_blank&quot;&gt;http://blog.newsarama.com/&lt;/a&gt;&lt;br /&gt;
类型：群体blog，社区（国外）&lt;br /&gt;
主题：欧美动漫&lt;br /&gt;
======================&lt;br /&gt;
osts per week: 80.0&lt;br /&gt;
Subscribers: 190&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：格致&lt;br /&gt;
地址：&lt;a href=&quot;http://gezhi.org/&quot; target=&quot;_blank&quot;&gt;http://gezhi.org/&lt;/a&gt;&lt;br /&gt;
类型：群体blog&lt;br /&gt;
主题：科学，科研工作者&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 4.2&lt;br /&gt;
Subscribers: 122&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：Psytopic心理杂志&lt;br /&gt;
地址：&lt;a href=&quot;http://www.psytopic.com/mag/&quot; target=&quot;_blank&quot;&gt;http://www.psytopic.com/mag/&lt;/a&gt;&lt;br /&gt;
类型：群体blog&lt;br /&gt;
主题：心理学&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 0.0&lt;br /&gt;
Subscribers: 370&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：影像日报&lt;br /&gt;
地址：&lt;a href=&quot;http://mymovie.blogbus.com/&quot; target=&quot;_blank&quot;&gt;http://mymovie.blogbus.com/&lt;/a&gt;&lt;br /&gt;
类型：群体blog&lt;br /&gt;
主题：好莱坞电影&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 21.0&lt;br /&gt;
Subscribers: 1,193&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：美剧迷&lt;br /&gt;
地址：&lt;a href=&quot;http://www.meijumi.com/&quot; target=&quot;_blank&quot;&gt;http://www.meijumi.com/&lt;/a&gt;&lt;br /&gt;
类型：blog，社区&lt;br /&gt;
主题：美剧&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 30.6&lt;br /&gt;
Subscribers: 5,112&lt;/p&gt;
&lt;p&gt;拿一个起步比较晚的it类群体blog来对比：&lt;/p&gt;
&lt;p&gt;======================&lt;br /&gt;
名称：apple4us&lt;br /&gt;
地址：&lt;a href=&quot;http://apple4.us/&quot; target=&quot;_blank&quot;&gt;http://apple4.us/&lt;/a&gt;&lt;br /&gt;
类型：群体blog&lt;br /&gt;
主题：苹果粉丝&lt;br /&gt;
======================&lt;br /&gt;
Posts per week: 0.0&lt;br /&gt;
Subscribers: 880&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=e9b05d9eb3571ff8483c0cbcde524c24&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=e9b05d9eb3571ff8483c0cbcde524c24&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=be924fea24039c404de54f2e76b1b5e8&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=be924fea24039c404de54f2e76b1b5e8&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=fe93622c600a56980fa252c86173aafd&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=fe93622c600a56980fa252c86173aafd&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=54a912426b69f350aed3ab8d8baaf97d&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=54a912426b69f350aed3ab8d8baaf97d&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</content:encoded><wfw:commentRss>http://www.limboy.com/2008/05/24/non-it-feed/feed/</wfw:commentRss><description>1，我是标题党。
2，数据取自当日，Google Reader的show details功能。
3，选择标准一是要比较有代表性的，二是要跟it不沾边（游戏开发除外），在我熟悉的游戏领域里细分的更多，可以窥斑见豹，而且没有仅限于blog，只要是提供feed的网站就行。
4，feed订阅量是评价一个BLOG的指标，但一般订阅总数其实包含了大量重复的用户，比如有人同时在抓虾，鲜果，google reader，bloglines，豆瓣订阅了同一个blog，甚至是用浏览器自带的书签功能。如果要作横向比较，这个数字就并非很靠谱了，因为建立时间越早，用户越熟悉IT的BLOG，重复订阅的水分会越大。所以我在这里统一比较google reader的订阅量，作为目前几乎稳居霸主地位的feed阅读工具，而且杜绝了重复订阅，google reader的统计数字更有意义。
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.limboy.com/2008/05/24/non-it-feed/&quot; title=&quot;游戏类暨非IT类blog读者订阅对比报告&quot; target=&quot;_blank&quot;&gt;阅读全文——共3028字&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=e9b05d9eb3571ff8483c0cbcde524c24&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=e9b05d9eb3571ff8483c0cbcde524c24&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=be924fea24039c404de54f2e76b1b5e8&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=be924fea24039c404de54f2e76b1b5e8&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=fe93622c600a56980fa252c86173aafd&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=fe93622c600a56980fa252c86173aafd&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=54a912426b69f350aed3ab8d8baaf97d&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=54a912426b69f350aed3ab8d8baaf97d&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</description><category>动漫</category><category>Blogger</category><category>游戏</category><pubDate>Sat, 24 May 2008 18:14:11 +0800</pubDate><author>dexter_yy</author><comments>http://www.limboy.com/2008/05/24/non-it-feed/#comments</comments><guid isPermaLink="false">http://www.limboy.com/2008/05/24/feed-2/</guid><dc:creator>dexter_yy</dc:creator><fs:srclink>http://www.limboy.com/2008/05/24/non-it-feed/</fs:srclink><fs:srcfeed>http://www.limboy.com/feed/rss2/</fs:srcfeed><fs:itemid>feedsky/dexteryy/~6072067/77676445/4180063</fs:itemid></item><item><title>JavaScript Memoization：让函数也有记忆功能</title><link>http://item.feedsky.com/~feedsky/dexteryy/~6072067/77214821/4180063/1/item.html</link><content:encoded>&lt;p&gt;&lt;a href='http://www.limboy.com/wp-content/uploads/2008/04/ltp.jpg' title='ltp.jpg'&gt;&lt;img src='http://www.limboy.com/wp-content/uploads/2008/04/ltp.jpg' alt='ltp.jpg' style=&quot;float:left;margin:0 10px 5px 0;width:200px;&quot; /&gt;&lt;/a&gt;realazy在blog上给出了一个&lt;a target=&quot;_blank&quot; href=&quot;http://realazy.org/blog/2008/04/22/javascript-memoization/&quot;&gt;JavaScript Memoization的实现&lt;/a&gt;，Memoization就是函数返回值的缓存，比如一个函数参数与返回结果一一对应的hash列表，wiki上其实也有&lt;a target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Memoization&quot;&gt;详细解释&lt;/a&gt;，我不细说了，只讨论一下具体实现的问题，realazy文中的代码有一些问题，比如直接用参数拼接成的字符串作为查询缓存结果的key，如果参数里包括对象或数组的话，就很难保证唯一的key，还有1楼评论里提到的：[221,3]和[22,13]这样的参数也无法区分。 &lt;/p&gt;
&lt;p&gt;那么来改写一下，首先还是用hash表来存放缓存数据：&lt;br /&gt;
&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;Memoize&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fn&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;){&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(){&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &amp;lt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;++ &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;push&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fn&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;嗯，区别是直接把数组当作键来用，不过要注意函数里的arguments是js解释器实现的一个特殊对象，并不是真正的数组，所以要转换一下……&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
ps: 原来的参数包括方法名称和上下文引用：fib.fib_memo = Memoize(&amp;#8217;fib_memo&amp;#8217;, fib)，但实际上currying生成的函数里可以用this直接引用上层对象，更复杂的例子可以参考&lt;a target=&quot;_blank&quot; href=&quot;http://ejohn.org/blog/simple-class-instantiation/&quot;&gt;John Resig的makeClass&lt;/a&gt;，所以我改成直接传函数引用：fib.fib_memo = Memoize(fib.fib_memo)&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;这样写看上去似乎很靠谱，由参数组成的数组不是唯一的么。但实际上，数组之所以能作为js对象的属性名称来使用，是因为它被当作字符串处理了，也就是说如果你给函数传的参数是这样：(1,2,3), cache对象就会是这个样子：{ &amp;#8220;1,2,3&amp;#8243;: somedata }，如果你的参数里有对象，比如：(1,2,{i:&amp;#8221;yy&amp;#8221;})，实际的键值会是：&amp;#8221;1,2,[object Object]&amp;#8221;，所以这跟把数组拼接成字符串的方法其实没有区别……&lt;/p&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;yy&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;xx&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Blue;&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;111&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Blue;&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;222&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Green;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;alert&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; + &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; + &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//只会弹出&amp;quot;1,2,[object Object] = 222&amp;quot;，obj[a] = &amp;quot;111&amp;quot;被覆盖了&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;直接用参数作为键名的方法不靠谱了…………换一种方法试试：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;Memoize&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fn&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;){&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(){&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &amp;lt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;++ &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;equal&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fn&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;key&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;可以完全避免上述问题，没有使用hash的键值对索引，而是把函数的参数和结果分别缓存在两个列表里，每次都先遍历整个参数列表作比较，找出对应的键名/ID号之后再从结果列表里取数据。以下是比较数组的equal方法：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;equal&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;){&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; || !&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; || &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;constructor&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; != &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;constructor&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &amp;amp;&amp;amp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;typeof&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; != &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &amp;gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; ? &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; : &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;length&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;){&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;equal&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;typeof&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; == &lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;){&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; !&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;equal&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;else&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;first&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; === &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;second&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;千万不要直接用==来比较arguments和args里的数组，那样比较的是内存引用，而不是参数的内容。&lt;/p&gt;
&lt;p&gt;这种方法的速度很慢，equal方法其实影响不大，但是缓存的结果数量多了以后，每次都要遍历参数列表却是很没效率的（求80以上的fibonacci数列，在firefox3和safari3上都要40ms左右）&lt;/p&gt;
&lt;p&gt;如果在实际应用中参数变动不多或者不接受参数的话，可以参考Oliver Steel的这篇&lt;a target=&quot;_blank&quot; href=&quot;http://osteele.com/archives/2006/04/javascript-memoization&quot;&gt;《One-Line JavaScript Memoization》&lt;/a&gt;，用很短的函数式风格解决问题：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;Memoize&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;mf&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;v&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;v&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;mf&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;mf&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(){&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}))&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;reset&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;mf&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;reset&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;apply&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;arguments&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//此处修改过，允许接受参数&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;})&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;reset&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)()&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;示例：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fib&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; = &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;){&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;10000&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;++&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Blue;&quot;&gt;Memoize&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fib&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//让fib.temp缓存返回值&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fib&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;16&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//执行结果：20006，被缓存&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fib&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;20&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//执行结果：20006&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fib&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//执行结果：20006&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fib&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;reset&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//重置缓存&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Blue;&quot;&gt;fib&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: Maroon;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: #ffa500;&quot;&gt;//执行结果：20010&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=a8edf6a4ee390c3f55a5e726ec6b6258&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=a8edf6a4ee390c3f55a5e726ec6b6258&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=8d4b56ac08193c25388d6a148a5cc05a&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=8d4b56ac08193c25388d6a148a5cc05a&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=b9f8b03cafe424435c6f1481976a5318&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=b9f8b03cafe424435c6f1481976a5318&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=ecc3b6c4aa9d670ca3d65d08d6bcdacd&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=ecc3b6c4aa9d670ca3d65d08d6bcdacd&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</content:encoded><wfw:commentRss>http://www.limboy.com/2008/04/27/javascript_memoization/feed/</wfw:commentRss><description>realazy在blog上给出了一个JavaScript Memoization的实现，Memoization就是函数返回值的缓存，比如一个函数参数与返回结果一一对应的hash列表，wiki上其实也有详细解释，我不细说了，只讨论一下具体实现的问题，realazy文中的代码有一些问题，比如直接用参数拼接成的字符串作为查询缓存结果的key，如果参数里包括对象或数组的话，就很难保证唯一的key，还有1楼评论里提到的：[221,3]和[22,13]这样的参数也无法区分。 
那么来改写一下，首先还是用hash表来存放缓存数据：

function Memoize(fn){
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.limboy.com/2008/04/27/javascript_memoization/&quot; title=&quot;JavaScript Memoization：让函数也有记忆功能&quot; target=&quot;_blank&quot;&gt;阅读全文——共1611字&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=a8edf6a4ee390c3f55a5e726ec6b6258&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=a8edf6a4ee390c3f55a5e726ec6b6258&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=8d4b56ac08193c25388d6a148a5cc05a&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=8d4b56ac08193c25388d6a148a5cc05a&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=b9f8b03cafe424435c6f1481976a5318&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=b9f8b03cafe424435c6f1481976a5318&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=ecc3b6c4aa9d670ca3d65d08d6bcdacd&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=ecc3b6c4aa9d670ca3d65d08d6bcdacd&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</description><category>Ajax</category><category>代码</category><category>JavaScript</category><pubDate>Sun, 27 Apr 2008 10:57:54 +0800</pubDate><author>dexter_yy</author><comments>http://www.limboy.com/2008/04/27/javascript_memoization/#comments</comments><guid isPermaLink="false">http://www.limboy.com/2008/04/27/javascript_memoization/</guid><dc:creator>dexter_yy</dc:creator><fs:srclink>http://www.limboy.com/2008/04/27/javascript_memoization/</fs:srclink><fs:srcfeed>http://www.limboy.com/feed/rss2/</fs:srcfeed><fs:itemid>feedsky/dexteryy/~6072067/77214821/4180063</fs:itemid></item><item><title>土豆网三周年PARTY</title><link>http://item.feedsky.com/~feedsky/dexteryy/~6072067/77214822/4180063/1/item.html</link><content:encoded>&lt;p&gt;&lt;a href='http://www.limboy.com/2008/04/19/tudou_3th_party/newtudoujpg/' rel='attachment wp-att-187' title='newtudou.jpg'&gt;&lt;img src='http://www.limboy.com/wp-content/uploads/2008/04/newtudou.jpg' alt='newtudou.jpg' style=&quot;float:left;margin:0 10px 5px 0;&quot; /&gt;&lt;/a&gt;PARTY刚刚结束，其实我到现在还没想明白为什么在我关于动画和游戏的记忆里，PARTY都是那么有趣，而现实中的PARTY只给我留下&lt;em&gt;看见一堆站着的人&lt;/em&gt;以及&lt;em&gt;自己手足无措&lt;/em&gt;的记忆，不明白到底有哪些不同……&lt;/p&gt;
&lt;p&gt;好罢，PARTY本身虽然满足不了我的YY，但今天晚上还是很有趣的，本来在这种时候，最适合我的行为是留在二楼开发部里上网，该干什么干什么（这是理性的那部分人格反复告诫我的），但是我还有一部分加盟了&lt;a href=&quot;http://www.ntrpg.org/yy/undertopia/article.php?articleid=636&amp;#038;pagenum=13&quot; target=&quot;_blank&quot;&gt;感觉会(Society of Sensation)&lt;/a&gt;的人格不停的催促我去PARTY现场看看……这种implicate conflict（隐缠冲突，自创词）时常碰到，今天我碰巧找到了平衡两种人格，既能体验PARTY又不至于无事可做让自己很尴尬的方法：帮前台的XIXI姐姐搬运食物（顺便吃）+看守通道（顺便涂鸦）…&lt;/p&gt;
&lt;p&gt;涂鸦是土豆办公室的最大特色之一，以下是我去年4月来面试时拍的照片，据说都是从以前的四行仓库搬到现在的仓库时涂的，我来晚了，没机会留下墨宝……但是由于如今土豆规模今非昔比，以前闲置的一楼也被塞满了人，白墙都需要“装修”，所以今天的PARTY搞了新的涂鸦…&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2285868675/&quot; title=&quot;Flickr 上 dexteryy 的 20070426034&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2162/2285868675_98c6496203_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;20070426034&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2286654582/&quot; title=&quot;Flickr 上 dexteryy 的 20070426029&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3168/2286654582_3d571570fc_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;20070426029&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;我刚才下楼看过，有些画的还是很不错的，比如异型和OOXX的男女，但是重叠的太多，缺乏美学智慧……作为一个极端重视信息可见度和呈现方式的人，我是绝不能容忍这种事情的，所以我的涂鸦都在二楼主过道里…挖哈哈哈………有图有真相：&lt;/p&gt;
&lt;p&gt;P.S. 土红色的颜料&lt;/p&gt;
&lt;h4&gt;图一，有爱&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2422810901/&quot; title=&quot;Flickr 上 dexteryy 的 涂鸦，有爱&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3177/2422810901_bc2ee10241_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;涂鸦，有爱&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;图二，图像和文字无关联&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2423625018/&quot; title=&quot;Flickr 上 dexteryy 的 涂鸦，图像和文字无关联&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2019/2423625018_bbce745fb6_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;涂鸦，图像和文字无关联&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;图三，javascript, lambda, closure和currying&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2423625160/&quot; title=&quot;Flickr 上 dexteryy 的 涂鸦，javascript, 拉姆达,闭包和curry化&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3078/2423625160_78301795fe_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;涂鸦，javascript, 拉姆达,闭包和curry化&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;图四，全&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2423625352/&quot; title=&quot;Flickr 上 dexteryy 的 涂鸦，全&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2389/2423625352_5c9a01349c_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;涂鸦，全&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以下是其他图，请原谅N73的效果，我一直认为“摄影”是伪小资和真小资们为填补精神的空虚和寻求群体认同感而最喜欢选择的兴趣爱好之一（另一个是“旅游”），所以DC是邪恶的，单反是邪恶的，宜敬而远之。内置打印机的polaroid还可以考虑…&lt;/p&gt;
&lt;h4&gt;邀请函&lt;/h4&gt;
&lt;p&gt;&lt;a href='http://www.limboy.com/wp-content/uploads/2008/04/3thparty.jpg' title='3thparty.jpg'&gt;&lt;img src='http://www.limboy.com/wp-content/uploads/2008/04/3thparty.jpg' alt='3thparty.jpg' style=&quot;width:300px;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;战前&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2422809233/&quot; title=&quot;Flickr 上 dexteryy 的 开始前的主会场&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3016/2422809233_a0ae4b7121_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;开始前的主会场&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;入口&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2422810297/&quot; title=&quot;Flickr 上 dexteryy 的 入口&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2286/2422810297_4dccbc9603_m.jpg&quot; width=&quot;180&quot; height=&quot;240&quot; alt=&quot;入口&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2422810077/&quot; title=&quot;Flickr 上 dexteryy 的 入口&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3080/2422810077_df431db120_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;入口&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;现场配对，由前微软研究院的老爷开发的算法提供支持&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2422809335/&quot; title=&quot;Flickr 上 dexteryy 的 土豆后台算法支持的现场配对&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3128/2422809335_225dd1f105_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;土豆后台算法支持的现场配对&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;二楼天台，有蛋糕，所以人多&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2422809463/&quot; title=&quot;Flickr 上 dexteryy 的 2楼天台&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3163/2422809463_be52773126_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;2楼天台&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2422809991/&quot; title=&quot;Flickr 上 dexteryy 的 人挤人的2楼天台&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2104/2422809991_908865b2b7_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;人挤人的2楼天台&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;三楼天台，有肉，所以人最多&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2423623398/&quot; title=&quot;Flickr 上 dexteryy 的 3楼天台&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2104/2423623398_ce5ce0e26c_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;3楼天台&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2423623478/&quot; title=&quot;Flickr 上 dexteryy 的 3楼天台&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2344/2423623478_d121dc83ca_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;3楼天台&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;后来把人赶下来，gary开讲&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2423624226/&quot; title=&quot;Flickr 上 dexteryy 的 GARY开讲&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2087/2423624226_8d2b473a43_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;GARY开讲&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;然后有专业舞者和饶舌者上台，台下很挤很暴力，蛋糕进不了场&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/dexter-yy/2423624548/&quot; title=&quot;Flickr 上 dexteryy 的 蛋糕挤不进会场&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2260/2423624548_1128603f8c_m.jpg&quot; width=&quot;240&quot; height=&quot;180&quot; alt=&quot;蛋糕挤不进会场&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;再后来没拍了，完，谢谢。&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=d434388c6c2161b3c389a40625a8d345&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=d434388c6c2161b3c389a40625a8d345&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=3d0df01b87ae7468413d9eecc062069e&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=3d0df01b87ae7468413d9eecc062069e&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=3e56932d8402b32bdce7f5482353bdd5&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=3e56932d8402b32bdce7f5482353bdd5&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=6411f3e6c553cc46b3db403f864e409f&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=6411f3e6c553cc46b3db403f864e409f&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</content:encoded><wfw:commentRss>http://www.limboy.com/2008/04/19/tudou_3th_party/feed/</wfw:commentRss><description>PARTY刚刚结束，其实我到现在还没想明白为什么在我关于动画和游戏的记忆里，PARTY都是那么有趣，而现实中的PARTY只给我留下看见一堆站着的人以及自己手足无措的记忆，不明白到底有哪些不同……
好罢，PARTY本身虽然满足不了我的YY，但今天晚上还是很有趣的，本来在这种时候，最适合我的行为是留在二楼开发部里上网，该干什么干什么（这是理性的那部分人格反复告诫我的），但是我还有一部分加盟了感觉会(Society of Sensation)的人格不停的催促我去PARTY现场看看……这种implicate conflict（隐缠冲突，自创词）时常碰到，今天我碰巧找到了平衡两种人格，既能体验PARTY又不至于无事可做让自己很尴尬的方法：帮前台的XIXI姐姐搬运食物（顺便吃）+看守通道（顺便涂鸦）…
&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.limboy.com/2008/04/19/tudou_3th_party/&quot; title=&quot;土豆网三周年PARTY&quot; target=&quot;_blank&quot;&gt;阅读全文——共876字&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=d434388c6c2161b3c389a40625a8d345&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=d434388c6c2161b3c389a40625a8d345&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=3d0df01b87ae7468413d9eecc062069e&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=3d0df01b87ae7468413d9eecc062069e&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=3e56932d8402b32bdce7f5482353bdd5&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=3e56932d8402b32bdce7f5482353bdd5&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=6411f3e6c553cc46b3db403f864e409f&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=6411f3e6c553cc46b3db403f864e409f&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</description><category>纯水</category><category>土豆网</category><pubDate>Sat, 19 Apr 2008 01:19:05 +0800</pubDate><author>dexter_yy</author><comments>http://www.limboy.com/2008/04/19/tudou_3th_party/#comments</comments><guid isPermaLink="false">http://www.limboy.com/2008/04/19/tudou_3th_party/</guid><dc:creator>dexter_yy</dc:creator><fs:srclink>http://www.limboy.com/2008/04/19/tudou_3th_party/</fs:srclink><fs:srcfeed>http://www.limboy.com/feed/rss2/</fs:srcfeed><fs:itemid>feedsky/dexteryy/~6072067/77214822/4180063</fs:itemid></item><item><title>iPhone App开发笔记</title><link>http://item.feedsky.com/~feedsky/dexteryy/~6072067/77214823/4180063/1/item.html</link><content:encoded>&lt;p&gt;&lt;a href='http://www.limboy.com/2008/03/08/iphone-app-develop/index_steps_2jpg/' rel='attachment wp-att-184' title='index_steps_2.jpg'&gt;&lt;img src='http://www.limboy.com/wp-content/uploads/2008/03/index_steps_2.jpg' alt='index_steps_2.jpg' style=&quot;width:200px;float:left;margin:0 5px 0 0;border:0;&quot; /&gt;&lt;/a&gt;第一，标题里的app指的是根正苗红老实本分的&lt;a href=&quot;http://www.apple.com/webapps/&quot; target=&quot;_blank&quot;&gt;Web App&lt;/a&gt;，昨天的这个时候，对是在昨天，iPhone Web App就等同于iPhone App，咳咳，虽然现在不是了，但我这笔记是两个星期前的……&lt;/p&gt;
&lt;p&gt;第二，不全，主要是我关心的一些细节，以及我自己理解的一些东西……&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;html里可以调用系统接口，比如电话拨号：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;tel:1-408-555-5555&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;1-408-555-5555&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;还有mail和google map的接口……&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;在js里嗅探iphone的safari环境，要注意agent字符串里有额外两处：&lt;/p&gt;
&lt;p&gt;&amp;#8220;Mobile/1A543&amp;#8243;，这个是iphone OS的操作系统版本（注意不是固件版本）&lt;br /&gt;
&amp;#8220;iPhone&amp;#8221;，这个是移动平台的类型，如果是ipod touch的话这里会是“ipod”&lt;/p&gt;
&lt;p&gt;此外：&lt;/p&gt;
&lt;p&gt;&amp;#8220;version/3.0&amp;#8243;，Safari的市场版本号&lt;br /&gt;
&amp;#8220;Safari/419.3&amp;#8243;，这个是build版本，虽然iphone跟osx一样都是safari3.0，但build版本号不同&lt;/p&gt;
&lt;p&gt;完整的例子：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like&lt;br /&gt;
Gecko) Version/3.0 Mobile/1A543 Safari/419.3&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;调用css的时候，media类型支持CSS3，比如可以用“only”来屏蔽旧浏览器，用“(min-device-width: 481px)”屏蔽小屏幕手机。由于iphone里的safari不支持print和handheld的media类型，可以用它们来对iphone屏蔽一些css文件。&lt;br /&gt;
示例：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;media&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;only screen and (min-device-width: 481px)&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;not-small-device.css&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;text/css&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;rel&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;stylesheet&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;也可以作为css选择器里，比如&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;@media&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Blue;&quot;&gt;screen&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Blue;&quot;&gt;#text&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;color:&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;white&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;background-color:&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;black&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Olive;&quot;&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;由于safari支持css3，你还可以享受到的福利包括在background里放6张图片做圆角，给文本加阴影，使用属性选择器之类……&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;iphone的浏览器里有一个很重要的概念是viewport（视区），系统默认的viewport为980像素，可以用meta标签指定，宽度范围从200到10,000，高度范围从223到10,000，还可以使用user-scalable禁止用户缩放页面（常见的iphone web应用，比如facebook,google reader，因为要仿原生界面，都是这样设置的），minimum-scale和maximum-scale可以设置缩放的限制，initial-scale是默认的缩放程度，范围从&gt;0到10&lt;br /&gt;
示例：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;meta&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;viewport&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;content&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;width = 320&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;meta&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;viewport&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;content&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;initial-scale=2.3, user-scalable=no&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;iphone默认的浏览器窗口尺寸是:  竖向（body[orient=&amp;#8221;profile&amp;#8221;]）为宽320px，高356px，横向（body[orient=&amp;#8221;landscape&amp;#8221;]）为宽208px，高480px，但实际上这是显示了浏览器地址栏之后剩余的空间，往下拖动页面时，地址栏会隐藏，所以实际的viewport（竖向）是宽320px，高416px。&lt;br /&gt;
页面加载之后可以用 window.scrollTo(0, 1) 隐藏地址栏，自动使用最大化的viewport。&lt;/p&gt;
&lt;p&gt;关于viewport，还有一个很重要的概念是：iphone的safari浏览器完全没有滚动条，而且不是简单的“隐藏滚动条”，是根本没有这个功能。所以不但iframe, overflow:scroll的元素没有滚动条，整个窗口也没有的，iphone的safari浏览器实际上从一开始就完整显示了这个网页，然后用viewport查看其中的一部分。当你用手指拖动时，其实拖的不是页面，而是viewport…………由此引申出的结果很多，比如CSS里的 position:fixed 无效……&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;浏览器行为的改变不止是滚动条，交互事件也跟普通桌面不一样：&lt;/p&gt;
&lt;p&gt;所有hover动作，还有mouseover，都不存在，链接上的title内容，会在你点击链接并按住不动时弹跳出来（如果你不放开手指，继续移动的话，点击事件不会发生，具体原因下面解释）…………而mouseover，直接转换成了mousedown……&lt;/p&gt;
&lt;p&gt;点击页面元素之后发生的事情很复杂…………比如当你用单指按住可点击元素（大约就是默认为block的元素），然后放开，首先触发的event居然是mousemove！ 接下来如果元素内容不变（这个条件比较难理解，我知道），会陆续触发mousedown，mouseup，click，如果内容改变，就不会再触发任何事件……&lt;/p&gt;
&lt;p&gt;如果你恰好不太走运的给网页上一些inline元素绑过js事件（这比较常见，我也知道），比如span，有一个不用修改标签的方法是给它们都加上onclick=&amp;#8221;void(0)&amp;#8221;，这样iphone就会认为它们是可点击的元素-_____-b&lt;/p&gt;
&lt;p&gt;如果按住元素之后移动手指，当然就不要指望会触发mousemove了，啥事情都没有，不过停下的时候，会触发onscroll （因为你刚才移动了viewport嘛……）&lt;/p&gt;
&lt;p&gt;如果你用两个手指做缩放的动作，啥事件都不会有啦，但是如果你用两个手指在屏幕上一起移动，而且所在的位置是一个本来有滚动条的页面元素(比如iframe罢)，会触发一个叫mousewheel的事件（但是别指望iframe本身的内容会滚动-___-b）, 停止移动时同样触发onscroll。&lt;/p&gt;
&lt;p&gt;OK，你希望像平时那样用onmousedown,onmouseup,onmousemove来做页面元素的拖拽交互把iphone web app的界面做的像原生界面一样活蹦乱跳的梦想已经破灭了，请努力克制骂乔布斯的欲望。&lt;/p&gt;
&lt;p&gt;对了，不用我说也应该想得到，onkeyup，e.charCode，e.keyCode这类玩意都不能用罢？&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;默认的html控件的样式大家都已经知道很cool了，不过也可以自己修改，具体内容请查看《iphone用户界面指南》的第三章：&lt;a href=&quot;http://developer.apple.com/documentation/iPhone/Conceptual/iPhoneHIG/MetricsLayout/chapter_5_section_1.html#//apple_ref/doc/uid/TP40006596-CH6-SW1&quot; target=&quot;_blank&quot;&gt;Metrics, Layout Guidelines, and Tips&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;iphone里的safari调整了默认的文字样式，这些调整被包括在了一个新的css属性“-webkit-text-size-adjust”里面，相当于“-webkit-text-size-adjust:auto;”，你可以覆盖它，根据需要改成none或者200%&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;web app可以像原生应用一样，在home界面里上添加一个快捷方式图标，方法是增加一个link标签：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;rel&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;apple-touch-icon&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;custom_icon.png&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;这是针对单个页面的，如果你把图片命名为“apple-touch-icon.png”，放在网站的某个目录里面，该目录下所有页面都会获得添加图标的功能……&lt;/p&gt;
&lt;p&gt;图标的要求是尺寸57×57，png格式，不用画蛇添足的去做圆角渐变或玻璃反光效果，iphone系统会把图片自动裁剪和渲染成统一的风格……&lt;/p&gt;
&lt;p&gt;喔对了……不要高兴太早……这个快捷图标的功能，只有1.1.3或更高的固件版本才支持……考虑到国内那些买旧版本破解机器还被商家反复叮嘱不要升级的用户……呃……&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;关于网页中的媒体文件，普通图片最大支持200万像素（jpg的话，最大可以显示出3200万的，不过超过200万的jpg都会被压成缩略图），支持的最大尺寸是2 * 1024&amp;#215;1024，gif动画最大支持2m（否则只显示第1帧）&lt;/p&gt;
&lt;p&gt;iphone支持的视频格式：&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;H.264 Baseline Profile Level 3.0 video, up to 640 x 480 at 30 fps. Note that B frames are not supported in the Baseline profile.&lt;br /&gt;
MPEG-4 Part 2 video (Simple Profile)&lt;br /&gt;
AAC-LC audio, up to 48 kHz&lt;br /&gt;
.mov, .mp4, .m4v, .3gp file formats&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;需要注意的是这里的“Baseline profile”，由于这种编码的质量跟“Extended Profile”和“main profile”相比效果比较差，目前主流的支持“高清”（h264）的视频网站，比如youtube，土豆，都没有采用Baseline profile压缩h264视频，所以iphone不但不能播放网络上流行的flv视频（因为不支持flash），连刚开始流行的h264也不能直接播放…………提供iphone应用的视频网站无法使用现有资源，不得不压缩iphone专用的视频文件，所以不要指望能立即在iphone上观看视频网站上的所有资源……T__T&lt;/p&gt;
&lt;p&gt;由于iphone不支持flash播放器，视频文件只能直接嵌在页面里，用自带的quicktime来全屏播放，示例：&lt;/p&gt;
&lt;div class=&quot;hl-surround&quot;&gt;&lt;ol class=&quot;hl-main ln-show&quot; title=&quot;Double click to hide line number.&quot; ondblclick = &quot;linenumber(this)&quot;&gt;&lt;li class=&quot;hl-firstline&quot;&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: Green;&quot;&gt;embed&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;screen.jpg&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;movie.m4v&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;video/x-m4v&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;target&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;myself&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #00008b;&quot;&gt;scale&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Red;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #8b0000;&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: Gray;&quot;&gt; ...&lt;/span&gt;&lt;span style=&quot;color: Olive;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;更多细节请看官方文档：&lt;a href=&quot;http://www.apple.com/quicktime/tutorials/embed.html&quot; target=&quot;_blank&quot;&gt;Including QuickTime In A Web Page&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;如果想全面了解iphone上的web开发，推荐阅读：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://developer.apple.com/documentation/iPhone/Conceptual/iPhoneHIG/&quot; target=&quot;_blank&quot;&gt;iPhone Human Interface Guidelines&lt;/a&gt;(官方还有一份名字类似的文档，简称OSXHIG，是&lt;a href=&quot;http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/&quot; target=&quot;_blank&quot;&gt;界面设计者的圣经&lt;/a&gt;之一)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://developer.apple.com/documentation/AppleApplications/Reference/SafariWebContent/&quot; target=&quot;_blank&quot;&gt;Safari Web Content Guide for iPhone&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://developer.apple.com/internet/webcontent/bestwebdev.html&quot; target=&quot;_blank&quot;&gt;Web Page Development: Best Practices&lt;/a&gt;(这篇可以凑合看看，2月8号刚更新过的)&lt;/p&gt;
&lt;p&gt;此外，ADC on iTunes里有好多iphone相关的视频，讨厌翻文档的可以去弄来看看，这可是iTunes store里少有的免费资源喔……&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;em style=&quot;color:#999;&quot;&gt;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;懒得想小标题的分界线&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&amp;#8212;&lt;/em&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;就像开头说的，这是2周前写的，一直懒得修改整齐了往blog上帖，但是昨天半夜（好罢是今天凌晨）在&lt;a href=&quot;http://twitter.com/apple4us&quot; target=&quot;_blank&quot;&gt;twitter&lt;/a&gt;上不小心看了iphone SDK发布的实况转播……我发现再拖延的话就只能贴到火星去了……&lt;/p&gt;
&lt;p&gt;跟华丽的SDK相比，iphone safari上的开发环境可以说很糟糕，非常限制想象力——对javascript和RIA开发者来说，不过只要看看iphone用户上网的热情和相关数据，可以预见在很长一段时间里，iphone平台仍然会是立志开发web app的勇者们争夺的滩头阵地。&lt;/p&gt;
&lt;p&gt;啊啊啊啊啊，2.10G的iphone_sdk.dmg终于下载完了，睡觉去……下周买&lt;a href=&quot;http://www.china-pub.com/computers/common/info.asp?id=38686&quot;&gt;《Cocoa入门&amp;#8211;使用Objective-C》&lt;/a&gt;……&lt;br /&gt;
&lt;br/&gt;&lt;br /&gt;
&lt;br/&gt;&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=bc0e30612ee96519ca4a8279faf5d7ec&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=bc0e30612ee96519ca4a8279faf5d7ec&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=51141edd1e9519a8d15d29ffe0909823&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=51141edd1e9519a8d15d29ffe0909823&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=44ecb4ca1d603c6ff1c49c1ca2e7d602&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=44ecb4ca1d603c6ff1c49c1ca2e7d602&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=52011ef5308e0694c56b06a90ec9efa2&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=52011ef5308e0694c56b06a90ec9efa2&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</content:encoded><wfw:commentRss>http://www.limboy.com/2008/03/08/iphone-app-develop/feed/</wfw:commentRss><description>第一，标题里的app指的是根正苗红老实本分的Web App，昨天的这个时候，对是在昨天，iPhone Web App就等同于iPhone App，咳咳，虽然现在不是了，但我这笔记是两个星期前的……
第二，不全，主要是我关心的一些细节，以及我自己理解的一些东西……


&lt;span class=&quot;readmore&quot;&gt;&lt;a href=&quot;http://www.limboy.com/2008/03/08/iphone-app-develop/&quot; title=&quot;iPhone App开发笔记&quot; target=&quot;_blank&quot;&gt;阅读全文——共4857字&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=bc0e30612ee96519ca4a8279faf5d7ec&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=bc0e30612ee96519ca4a8279faf5d7ec&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=51141edd1e9519a8d15d29ffe0909823&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=51141edd1e9519a8d15d29ffe0909823&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=44ecb4ca1d603c6ff1c49c1ca2e7d602&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=44ecb4ca1d603c6ff1c49c1ca2e7d602&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=52011ef5308e0694c56b06a90ec9efa2&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=52011ef5308e0694c56b06a90ec9efa2&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</description><category>Apple</category><category>web服务/应用</category><category>CSS</category><category>JavaScript</category><category>界面</category><pubDate>Sat, 08 Mar 2008 03:04:13 +0800</pubDate><author>dexter_yy</author><comments>http://www.limboy.com/2008/03/08/iphone-app-develop/#comments</comments><guid isPermaLink="false">http://www.limboy.com/2008/03/08/iphone-app-develop/</guid><dc:creator>dexter_yy</dc:creator><fs:srclink>http://www.limboy.com/2008/03/08/iphone-app-develop/</fs:srclink><fs:srcfeed>http://www.limboy.com/feed/rss2/</fs:srcfeed><fs:itemid>feedsky/dexteryy/~6072067/77214823/4180063</fs:itemid></item><item><title>关于卓越，关于态度，关于实体书管理软件，关于技术书籍的引进，关于阅读能力。</title><link>http://item.feedsky.com/~feedsky/dexteryy/~6072067/77214824/4180063/1/item.html</link><content:encoded>&lt;p&gt;&lt;a href='http://www.limboy.com/2008/02/15/booklibrary/bookbggif/' rel='attachment wp-att-181' title='bookbg.gif'&gt;&lt;img src='http://www.limboy.com/wp-content/uploads/2008/02/bookbg.gif' alt='bookbg.gif' style=&quot;float:left;margin:0 10px 5px 0;width:200px;border:0;&quot; /&gt;&lt;/a&gt;初七那天，赶在上飞机之前在amazon.cn订了《欧洲古堡游》，《基地》前传和《Inside facebook》——我以前只在china-pub和当当上买书，自从看了Jeff Bezos(Amazon CEO)在cctv2的访谈节目，听到他对当当网的欧巴桑说“卓越的竞争对手是新华书店”，我就对卓越抱有好感了（很牵强的理由），虽然有人抱怨卓越&lt;a href=&quot;http://www.cndkc.net/bbs/thread-29422-1-1.html&quot; target=&quot;_blank&quot;&gt;发货速度慢错误多&lt;/a&gt;，不过我这次从下单到拿到书只隔了一天，似乎比当当的速度要快很多……&lt;/p&gt;
&lt;p&gt;Jeff Bezos的那句话，在&lt;a href=&quot;http://www.tudou.com/&quot; target=&quot;_blank&quot;&gt;土豆网&lt;/a&gt;我也听到过类似的：“我们的竞争对手是CCTV和新浪，不是优酷56之流”。我不在乎这种说法的对错，而是欣赏它反映出的一种态度，这是真正属于web2.0和硅谷的态度，持有这种态度的人所思所想的是“为用户创造新的价值”，“新的市场”，“改变世界”，“do something fun”，他们是做大蛋糕的人，而不是争抢眼前的小块蛋糕的短视者和投机者，这些人应该还没有感染上&lt;a href=&quot;http://v.smgbb.cn/?uid-2007657-action-viewspace-itemid-7036&quot; target=&quot;_blank&quot;&gt;国内互联网业界的恶习&lt;/a&gt;……啊啊语气有点枪文了，打住……&lt;/p&gt;
&lt;p&gt;其实写这篇blog是因为想show书架，刚才看《Inside facebook》时我突然想到，来魔都八个月就买了这么多书（我在宜家买的5层书架快堆满了），以后搬家的时候如果漏掉了几本，要怎么核对哑……然后我便想起了获过大奖的mac软件&lt;a href=&quot;http://www.delicious-monster.com/&quot; target=&quot;_blank&quot;&gt;Delicious Library&lt;/a&gt;……&lt;/p&gt;
&lt;p&gt;这款软件让我印象最深的是扫描条形码的功能，可以利用电脑的摄像头直接把实体书籍，游戏或音像制品的ISBN扫进数据库里，然后从网上获取对应的封面和相关描述，不过因为它的ISBN数据库是国外的，所以我觉得对自己用处不大，一直闲置………………然则就在刚才，我突然醒悟过来，发现自己平时买的书，几乎全是从国外翻译引进的，没有一本是中国人写的-____-b，这一方面是因为我崇尚经典，原创，全球化和一手信息源，一方面也是因为国内原创书籍的质量确实不高（特别是技术书籍）……而Delicious Library内置有搜索功能，可以很容易的把amazon里的书籍添加到数据库里，所以我立刻丢开手上的书，开始一边看书架一边添加数据，只花了几十分钟就完成了，非常爽……&lt;/p&gt;
&lt;p&gt;于是帖屏幕截图，这些是我在魔都存放的技术类实体书，我觉得国内出版社引进的前端技术书籍应该都在这里了罢？……&lt;/p&gt;
&lt;p&gt;&lt;a href='http://www.limboy.com/wp-content/uploads/2008/02/picture-2.png' title='picture-2.png' target=&quot;_blank&quot;&gt;&lt;img src='http://www.limboy.com/wp-content/uploads/2008/02/picture-2.thumbnail.png' alt='picture-2.png' /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;现实跟rpg不同的是，并不是买了书就能立刻提高int提升skill等级，买了一堆书而没时间看，是非常痛苦的，书看过又忘掉了，是更痛苦的，我最近一直在思考关于记忆力和阅读速度/效率的问题，有人可能认为记忆力在互联网时代是无关紧要的，但我认为一定程度的记忆是判断力，创意，联想和灵活解决问题的基础，就算要依赖搜索引擎，至少也应该知道自己需要什么信息，这些信息可能出现在什么地方，最初出现在什么地方，与什么相关联，用哪些关键词可能更快更准确的查到。看过译言翻译的&lt;a href=&quot;http://www.yeeyan.com/articles/view/smalltown/4483&quot;&gt;记忆七宗罪&lt;/a&gt;，我们可以再次确认记忆是不靠谱的，因此我担心的只是自己的阅读效率……由于从小看漫画和小说太认真太专注想象力太丰富代入感太强产生的后遗症，我现在的阅读速度很慢，一个实际的例子是，春节回家等晚点的火车，加上旅途中的时间，别人看完了一本《物语日本》和大半本《变化的位面》，我只看了190多页《冰与火之歌III》，而那本茂吕美耶的《物语日本》其实是我的书，买了几个月了也没看完……而跟这里估算&lt;a href=&quot;http://www.cndkc.net/?p=340&quot; target=&quot;_blank&quot;&gt;10本书10天看完&lt;/a&gt;的老爷相比，我就更是废至渣了……&lt;/p&gt;
&lt;p&gt;目前我发现的问题是，自己看书时就像小时候画素描，做网站，写作文的时候一样，对每个细节都仔细琢磨，缺乏跳跃性，无法自由控制进度。另外，联想过多，代入感太强，看漫画时可以把黑白方格处理成彩色动画，看小说时可以从文字对白处理出译制片的配音和人物神态……（这个问题比较棘手，因为换个角度来说这其实是优点）。还有一个问题似乎是长年的上网造成的：有时注意力很难集中，经常走神，中断阅读做别的事（这些事通常跟浏览器有关……），可以算作一种信息狂躁症……&lt;/p&gt;
&lt;p&gt;如果龟速的阅读换来的是比别人更深刻的理解，更多的乐趣或信息量，更长久的记忆，我倒也能够接受……可惜很难找到合适的对象和场合来比较和验证我的阅读效率……而上面列出的问题也不是短时间内可以解决，所以我目前能做的只是：把有限的时间花在最经典，最有价值，最需要阅读的书籍上面，同时尽可能抑制购书消费——我买书跟斑目一样，不看价格直接拿的……&lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky flare --&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=6d43374116019df455ae2070c75d00d1&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=6d43374116019df455ae2070c75d00d1&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=a42d5996aa85406eae5c024f155df7c6&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=a42d5996aa85406eae5c024f155df7c6&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=fba7a3803617608b0775210984138824&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=fba7a3803617608b0775210984138824&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://feed.feedsky.com/~flare/dexteryy?a=215cd99342910fad84efe5ca7e9f9b07&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~flare/dexteryy?i=215cd99342910fad84efe5ca7e9f9b07&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;!-- /Feedsky flare --&gt;</content:encoded><wfw:commentRss>http://www.limboy.com/2008/02/15/booklibrary/feed/</wfw:commentRss><description>初七那天，赶在上飞机之前在amazon.cn订了《欧洲古堡游》，《基地》前传和《Inside facebook》——我以前只在china-pub和当当上买书，自从看了Jeff Bezos(Amazon CEO)在cctv2的访谈节目，听到他对当当网的欧巴桑说“卓越的竞争对手是新华书店”，我就对卓越抱有好感了（很牵强的理由），虽然有人抱怨卓越发货速度慢错误多，不过我这次从下单到拿到书只隔了一天，似乎比当当的速度要快很多……
Jeff Bezos的那句话，在土豆网我也听到过类似的：“我们的竞争对手是CCTV和新浪，不是优酷56之流”。我不在乎这种说法的对错，而是欣赏它反映出的一种态度，这是真正属于web2.0和硅谷的态度，持有这种态度的人所思所想的是“为用户创造新的价值”，“新的市场”，“改变世界”，