<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: JavaScript Memoization</title>
	<atom:link href="http://realazy.org/blog/2008/04/22/javascript-memoization/feed/" rel="self" type="application/rss+xml" />
	<link>http://realazy.org/blog/2008/04/22/javascript-memoization/</link>
	<description>web 标准，前端开发，编程感悟，生活杂想</description>
	<pubDate>Thu, 24 Jul 2008 16:06:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: 哉崽</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-75809</link>
		<dc:creator>哉崽</dc:creator>
		<pubDate>Fri, 18 Jul 2008 07:29:33 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-75809</guid>
		<description>晕，搞错了，作为对象的KEY可以的</description>
		<content:encoded><![CDATA[<p>晕，搞错了，作为对象的KEY可以的</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 哉崽</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-75776</link>
		<dc:creator>哉崽</dc:creator>
		<pubDate>Fri, 18 Jul 2008 06:10:55 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-75776</guid>
		<description>@闲耘
虽然join默认使用逗号分隔，但是作为key貌似不可以哦^-^</description>
		<content:encoded><![CDATA[<p>@闲耘<br />
虽然join默认使用逗号分隔，但是作为key貌似不可以哦^-^</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: domkey</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-64128</link>
		<dc:creator>domkey</dc:creator>
		<pubDate>Mon, 12 May 2008 09:20:15 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-64128</guid>
		<description>这东西似乎只能用在一个函数上。绑两个以上的函数就冲突了，想法很好但还要再通用些吧。</description>
		<content:encoded><![CDATA[<p>这东西似乎只能用在一个函数上。绑两个以上的函数就冲突了，想法很好但还要再通用些吧。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: muqiao</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-63483</link>
		<dc:creator>muqiao</dc:creator>
		<pubDate>Wed, 07 May 2008 02:02:55 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-63483</guid>
		<description>你的文章回复系统 怎么设置的
我的回复http://hi.baidu.com/emkiao/blog/item/6612caedb8e0c3d1b21cb124.html</description>
		<content:encoded><![CDATA[<p>你的文章回复系统 怎么设置的<br />
我的回复http://hi.baidu.com/emkiao/blog/item/6612caedb8e0c3d1b21cb124.html</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: muqiao</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-63480</link>
		<dc:creator>muqiao</dc:creator>
		<pubDate>Wed, 07 May 2008 01:46:13 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-63480</guid>
		<description>函数中包含global对象 就不能用这个函数了</description>
		<content:encoded><![CDATA[<p>函数中包含global对象 就不能用这个函数了</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dexter_yy</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-61451</link>
		<dc:creator>dexter_yy</dc:creator>
		<pubDate>Sun, 27 Apr 2008 03:05:20 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-61451</guid>
		<description>…评论有字数限制么…

我贴到BLOG上了：http://www.limboy.com/2008/04/27/javascript_memoization/</description>
		<content:encoded><![CDATA[<p>…评论有字数限制么…</p>
<p>我贴到BLOG上了：http://www.limboy.com/2008/04/27/javascript_memoization/</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dexter_yy</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-61380</link>
		<dc:creator>dexter_yy</dc:creator>
		<pubDate>Sat, 26 Apr 2008 20:16:09 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-61380</guid>
		<description>不应该把参数拼成字符串作key，如果参数里有object或数组之类的就败了哑，不如改成这样：

function Memoize(fn){
    var cache = {}, args = [];
    return function(){
		for( var i=0, key = args.length; i  second.length ) ? first.length : second.length; i</description>
		<content:encoded><![CDATA[<p>不应该把参数拼成字符串作key，如果参数里有object或数组之类的就败了哑，不如改成这样：</p>
<p>function Memoize(fn){<br />
    var cache = {}, args = [];<br />
    return function(){<br />
		for( var i=0, key = args.length; i  second.length ) ? first.length : second.length; i</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 闲耘</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60706</link>
		<dc:creator>闲耘</dc:creator>
		<pubDate>Wed, 23 Apr 2008 15:14:44 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60706</guid>
		<description>refresh希望渺茫。
另，参数唯一性：参数本身使用逗号分隔，何不将就。
var key = Array.prototype.join.call(arguments);</description>
		<content:encoded><![CDATA[<p>refresh希望渺茫。<br />
另，参数唯一性：参数本身使用逗号分隔，何不将就。<br />
var key = Array.prototype.join.call(arguments);</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dragon</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60696</link>
		<dc:creator>Dragon</dc:creator>
		<pubDate>Wed, 23 Apr 2008 14:27:02 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60696</guid>
		<description>提个建议，要是Memoize函数能够接受 Refresh参数就更好了，
毕竟实际应用中有需要刷新cache 的需求。

btw，仰慕博主的威名，希望和博主有更多交流，方便请加我MSN：dylanjia@hotmail.com

期盼！</description>
		<content:encoded><![CDATA[<p>提个建议，要是Memoize函数能够接受 Refresh参数就更好了，<br />
毕竟实际应用中有需要刷新cache 的需求。</p>
<p>btw，仰慕博主的威名，希望和博主有更多交流，方便请加我MSN：dylanjia@hotmail.com</p>
<p>期盼！</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 闲耘</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60634</link>
		<dc:creator>闲耘</dc:creator>
		<pubDate>Wed, 23 Apr 2008 07:54:04 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60634</guid>
		<description>学习了。之前有关于“兼容性记忆体”的想法：就是浏览器在第一次执行某兼容代码时，记忆此时选择执行的分支，以确认当前浏览器支持的对象/方法，在以后的执行过程中，直接使用记忆体里的对象/方法。部分示例如下：
XmlHttpRequest.AXO = [
'MSXML3.XMLHTTP.5.0',
'MSXML3.XMLHTTP.4.0',
'MSXML3.XMLHTTP.3.0',
'MSXML3.XMLHTTP.2.0',
"Msxml3.XMLHTTP",
"Msxml2.XMLHTTP.5.0",
"Msxml2.XMLHTTP.4.0",
"Msxml2.XMLHTTP.3.0",
"Msxml2.XMLHTTP",
"Microsoft.XMLHTTP"];
XmlHttpRequest.AXOI=0; // 兼容性记忆体。
...
if(window.ActiveXObject){ // 支持ActiveX的（ie）
  for (var i=XmlHttpRequest.AXOI, l=XmlHttpRequest.AXO.length; i</description>
		<content:encoded><![CDATA[<p>学习了。之前有关于“兼容性记忆体”的想法：就是浏览器在第一次执行某兼容代码时，记忆此时选择执行的分支，以确认当前浏览器支持的对象/方法，在以后的执行过程中，直接使用记忆体里的对象/方法。部分示例如下：<br />
XmlHttpRequest.AXO = [<br />
'MSXML3.XMLHTTP.5.0',<br />
'MSXML3.XMLHTTP.4.0',<br />
'MSXML3.XMLHTTP.3.0',<br />
'MSXML3.XMLHTTP.2.0',<br />
"Msxml3.XMLHTTP",<br />
"Msxml2.XMLHTTP.5.0",<br />
"Msxml2.XMLHTTP.4.0",<br />
"Msxml2.XMLHTTP.3.0",<br />
"Msxml2.XMLHTTP",<br />
"Microsoft.XMLHTTP"];<br />
XmlHttpRequest.AXOI=0; // 兼容性记忆体。<br />
&#8230;<br />
if(window.ActiveXObject){ // 支持ActiveX的（ie）<br />
  for (var i=XmlHttpRequest.AXOI, l=XmlHttpRequest.AXO.length; i</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: realazy</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60624</link>
		<dc:creator>realazy</dc:creator>
		<pubDate>Wed, 23 Apr 2008 06:37:38 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60624</guid>
		<description>@魏中华 

或许我没说得太明白。我的意思是，在自动完成的输入过程中，在客户端缓存已经查找过的结果，在没有离开页面时，再次查找相同的值时，直接使用缓存结果了，并不用重新请求（即使请求已经缓存），而且也节省了函数的运行时间。</description>
		<content:encoded><![CDATA[<p>@魏中华 </p>
<p>或许我没说得太明白。我的意思是，在自动完成的输入过程中，在客户端缓存已经查找过的结果，在没有离开页面时，再次查找相同的值时，直接使用缓存结果了，并不用重新请求（即使请求已经缓存），而且也节省了函数的运行时间。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: arthuridea</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60564</link>
		<dc:creator>arthuridea</dc:creator>
		<pubDate>Wed, 23 Apr 2008 02:08:52 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60564</guid>
		<description>现在的前端开发对于程序的效率越来越高也越来越体系化了。。。
不错，学习中。。</description>
		<content:encoded><![CDATA[<p>现在的前端开发对于程序的效率越来越高也越来越体系化了。。。<br />
不错，学习中。。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: zamanewby</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60563</link>
		<dc:creator>zamanewby</dc:creator>
		<pubDate>Wed, 23 Apr 2008 02:06:45 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60563</guid>
		<description>帅！ 前些日子还在想， 怎么能在前端做个很好的cache。 发现一些开源框架会缓存住selector取得的元素信息， 以为自己能做的只是尽可能缓存取来的数据。 这个利用闭包缓存住函数执行结果的方法提供了新的思路， 很赞：）</description>
		<content:encoded><![CDATA[<p>帅！ 前些日子还在想， 怎么能在前端做个很好的cache。 发现一些开源框架会缓存住selector取得的元素信息， 以为自己能做的只是尽可能缓存取来的数据。 这个利用闭包缓存住函数执行结果的方法提供了新的思路， 很赞：）</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 魏中华</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60557</link>
		<dc:creator>魏中华</dc:creator>
		<pubDate>Wed, 23 Apr 2008 01:47:46 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60557</guid>
		<description>&#62;&#62;随着 Ajax 的兴起，客户端对服务器的请求越来越密集（经典如 autocomplete），如果有一个良好的缓存机制，那么客户端 JavaScript 程序的效率的提升是显而易见的。

既然需求是解决服务器请求过多的问题，那么直接缓存 Ajax 请求(URL + get/post 的数据)的结果应该可以解决问题，直接缓存函数貌似太复杂了。</description>
		<content:encoded><![CDATA[<p>&gt;&gt;随着 Ajax 的兴起，客户端对服务器的请求越来越密集（经典如 autocomplete），如果有一个良好的缓存机制，那么客户端 JavaScript 程序的效率的提升是显而易见的。</p>
<p>既然需求是解决服务器请求过多的问题，那么直接缓存 Ajax 请求(URL + get/post 的数据)的结果应该可以解决问题，直接缓存函数貌似太复杂了。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lunatic Sun</title>
		<link>http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60554</link>
		<dc:creator>Lunatic Sun</dc:creator>
		<pubDate>Wed, 23 Apr 2008 01:25:30 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2008/04/22/javascript-memoization/#comment-60554</guid>
		<description>@longwosion - 你的建议不错。

另外，不递归的话不能够提升效率吧，如果cache能够成为obj的私有属性或许不递归也能提升效率。</description>
		<content:encoded><![CDATA[<p>@longwosion - 你的建议不错。</p>
<p>另外，不递归的话不能够提升效率吧，如果cache能够成为obj的私有属性或许不递归也能提升效率。</p>
]]></content:encoded>
	</item>
</channel>
</rss>
