<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>“army8735” 的评论</title>
	<atom:link href="http://army8735.org/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://army8735.org</link>
	<description>我可以A，我也可以-A，我可以同时A和-A。</description>
	<lastBuildDate>Thu, 17 Nov 2011 03:10:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>asins 关于 采用2次幂延迟算法的onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/17/1028.html/comment-page-1#comment-2624</link>
		<dc:creator>asins</dc:creator>
		<pubDate>Thu, 17 Nov 2011 03:10:21 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1028#comment-2624</guid>
		<description>other
	0:	549
opera
	0:	11041
ie8
	0:	2400744
webkit
	0:	985167
ie10
	0:	115
ie9
	0:	418761
ie7
	0:	774179
ie6
	0:	3245514
FF
	0:	138618

出现了onload抢先exec的现象，比如 CcaABb  总数：144

顺序不一致，比如 CcAbBa  总数：505


错误率(144+505)/7974688 = 万分之0.81382494211685773788266073857686
注：两种错误情况依然有重叠，概率应该还要再低些许</description>
		<content:encoded><![CDATA[<p>other<br />
	0:	549<br />
opera<br />
	0:	11041<br />
ie8<br />
	0:	2400744<br />
webkit<br />
	0:	985167<br />
ie10<br />
	0:	115<br />
ie9<br />
	0:	418761<br />
ie7<br />
	0:	774179<br />
ie6<br />
	0:	3245514<br />
FF<br />
	0:	138618</p>
<p>出现了onload抢先exec的现象，比如 CcaABb  总数：144</p>
<p>顺序不一致，比如 CcAbBa  总数：505</p>
<p>错误率(144+505)/7974688 = 万分之0.81382494211685773788266073857686<br />
注：两种错误情况依然有重叠，概率应该还要再低些许</p>
]]></content:encoded>
	</item>
	<item>
		<title>Monicca2654 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2612</link>
		<dc:creator>Monicca2654</dc:creator>
		<pubDate>Sun, 13 Nov 2011 06:13:29 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2612</guid>
		<description>&lt;i&gt;@lifesinger: 其实我觉得1对1是个更好的拆分约定。1对1的强制约定就像java的一个文件只允许1个public class一样。在构建过程中强制1个文件1个模块，对开发维护阅读都是好处。合并或压缩之类的，应该交由工具去做，甚至这个工具对开发者来说都是不可见的。我最初设计的考虑就是只需开发单个的模块，后续工作开发者根本无需关心。
你因为兼容考虑不像我这样不用担心什么哈哈，其实这个东西目前还是个测试状态，离实行还很远。（历史遗留问题 T T）。
不过我感觉你可以考虑在seajs2中进行不兼容的升级。&lt;/i&gt;
+1</description>
		<content:encoded><![CDATA[<p><i>@lifesinger: 其实我觉得1对1是个更好的拆分约定。1对1的强制约定就像java的一个文件只允许1个public class一样。在构建过程中强制1个文件1个模块，对开发维护阅读都是好处。合并或压缩之类的，应该交由工具去做，甚至这个工具对开发者来说都是不可见的。我最初设计的考虑就是只需开发单个的模块，后续工作开发者根本无需关心。<br />
你因为兼容考虑不像我这样不用担心什么哈哈，其实这个东西目前还是个测试状态，离实行还很远。（历史遗留问题 T T）。<br />
不过我感觉你可以考虑在seajs2中进行不兼容的升级。</i><br />
+1</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2610</link>
		<dc:creator>army</dc:creator>
		<pubDate>Sat, 12 Nov 2011 12:49:44 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2610</guid>
		<description>关于那些error，我有了些新的观点。ie的onload有极低的几率可能在它本身前触发！
因此发生了像AabB这个样子。但是b执行的时候没有B，于是报错Aab……
能想到的解决方案是抑制网络风暴的2次幂延迟算法。
</description>
		<content:encoded><![CDATA[<p>关于那些error，我有了些新的观点。ie的onload有极低的几率可能在它本身前触发！<br />
因此发生了像AabB这个样子。但是b执行的时候没有B，于是报错Aab……<br />
能想到的解决方案是抑制网络风暴的2次幂延迟算法。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2609</link>
		<dc:creator>army</dc:creator>
		<pubDate>Sat, 12 Nov 2011 07:54:20 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2609</guid>
		<description>@lifesinger: spm最后那句，我记得有设置location.host的api在，貌似是base吧，可以考虑相对根路径。</description>
		<content:encoded><![CDATA[<p>@lifesinger: spm最后那句，我记得有设置location.host的api在，貌似是base吧，可以考虑相对根路径。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2607</link>
		<dc:creator>army</dc:creator>
		<pubDate>Sat, 12 Nov 2011 02:51:51 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2607</guid>
		<description>@lifesinger: 你的打包策略和我考虑的不谋而合哈哈。</description>
		<content:encoded><![CDATA[<p>@lifesinger: 你的打包策略和我考虑的不谋而合哈哈。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2606</link>
		<dc:creator>army</dc:creator>
		<pubDate>Sat, 12 Nov 2011 02:51:23 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2606</guid>
		<description>@lifesinger: 对于combo和url我也纠结了很久，一直没想出更好的方案。
我也更喜欢纯匿名的解决方式。</description>
		<content:encoded><![CDATA[<p>@lifesinger: 对于combo和url我也纠结了很久，一直没想出更好的方案。<br />
我也更喜欢纯匿名的解决方式。</p>
]]></content:encoded>
	</item>
	<item>
		<title>lifesinger 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2596</link>
		<dc:creator>lifesinger</dc:creator>
		<pubDate>Fri, 11 Nov 2011 15:05:40 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2596</guid>
		<description>匿名模块肯定只能出现一个，多个的话，后者会覆盖前者。

SeaJS 的打包，之前采取了虚拟模块的概念，比如将 x/a.js 和 x/z/b.js 打包在一起，会是：

define(&#039;./a&#039;, ...);
define(&#039;./z/b&#039;, ...);

打包后的文件假设是 http://t.com/path/to/combo.js

则解析 combo.js 时，等价于定义了两个虚拟模块：

define(&#039;http://t.com/path/to/a.js&#039;, ...);
define(&#039;http://t.com/path/to/z/b.js&#039;, ...);


因此不光是匿名模块的问题，最大的问题是对这种相对路径的虚拟模块的兼容，这些虚拟模块肯定是多个存在于同一个文件中的。

也有解决办法，更改 spm 的打包策略，不用相对路径，打包时直接达成绝对路径，这样对性能也有好处，但缺点时，打包时，用户必须指定上线后，js 文件存放的基础路径。</description>
		<content:encoded><![CDATA[<p>匿名模块肯定只能出现一个，多个的话，后者会覆盖前者。</p>
<p>SeaJS 的打包，之前采取了虚拟模块的概念，比如将 x/a.js 和 x/z/b.js 打包在一起，会是：</p>
<p>define(&#8216;./a&#8217;, &#8230;);<br />
define(&#8216;./z/b&#8217;, &#8230;);</p>
<p>打包后的文件假设是 <a href="http://t.com/path/to/combo.js" rel="nofollow">http://t.com/path/to/combo.js</a></p>
<p>则解析 combo.js 时，等价于定义了两个虚拟模块：</p>
<p>define(&#8216;http://t.com/path/to/a.js&#8217;, &#8230;);<br />
define(&#8216;http://t.com/path/to/z/b.js&#8217;, &#8230;);</p>
<p>因此不光是匿名模块的问题，最大的问题是对这种相对路径的虚拟模块的兼容，这些虚拟模块肯定是多个存在于同一个文件中的。</p>
<p>也有解决办法，更改 spm 的打包策略，不用相对路径，打包时直接达成绝对路径，这样对性能也有好处，但缺点时，打包时，用户必须指定上线后，js 文件存放的基础路径。</p>
]]></content:encoded>
	</item>
	<item>
		<title>lifesinger 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2595</link>
		<dc:creator>lifesinger</dc:creator>
		<pubDate>Fri, 11 Nov 2011 14:55:49 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2595</guid>
		<description>@army: seajs 1.0.x 差不多功能齐备了。现在其实在搞 1.1.0, 可以考虑部分不兼容，呵呵。

对于你的代码中， define 参数的 combo 和 url，建议放到另一个方法，比如 attachMod, 专门用作打包后的模块，且这个方法不放在 public api 里。

API 的设计里，有一个原则：如果是私有的，就一定搞成私有的。以前不是很理解，现在越发感觉到这个原则很重要，一旦外部可设置，经常就真的有人会去用，结果为了兼容，原本意图私有的方法会逐步变成 public

比如 SeaJS 里，最初的意图就是一个文件一个模块，且必须是匿名模块，格式必须是：

define(function(require, exports, module) { ... })

但为了实现上的方便，我把 id 和 deps 也放在 define 参数上了，结果就有人发现了这一点，很兴奋的去用，像用 YUI3 一样用的很 happy，实际上是和我的初衷违背的，匿名模块是比具名模块更 DRY 的一种写法。但现实情况下，大家习惯了 YUI3 这种具名模块的写法，因此反而一时半会不习惯匿名模块，初衷就在这种现实情况下发生着变化。

后来还有 combo 的问题，spm 项目进度比较慢，结果内部出现不少自主打包工作⋯⋯

不一一提了。</description>
		<content:encoded><![CDATA[<p>@army: seajs 1.0.x 差不多功能齐备了。现在其实在搞 1.1.0, 可以考虑部分不兼容，呵呵。</p>
<p>对于你的代码中， define 参数的 combo 和 url，建议放到另一个方法，比如 attachMod, 专门用作打包后的模块，且这个方法不放在 public api 里。</p>
<p>API 的设计里，有一个原则：如果是私有的，就一定搞成私有的。以前不是很理解，现在越发感觉到这个原则很重要，一旦外部可设置，经常就真的有人会去用，结果为了兼容，原本意图私有的方法会逐步变成 public</p>
<p>比如 SeaJS 里，最初的意图就是一个文件一个模块，且必须是匿名模块，格式必须是：</p>
<p>define(function(require, exports, module) { &#8230; })</p>
<p>但为了实现上的方便，我把 id 和 deps 也放在 define 参数上了，结果就有人发现了这一点，很兴奋的去用，像用 YUI3 一样用的很 happy，实际上是和我的初衷违背的，匿名模块是比具名模块更 DRY 的一种写法。但现实情况下，大家习惯了 YUI3 这种具名模块的写法，因此反而一时半会不习惯匿名模块，初衷就在这种现实情况下发生着变化。</p>
<p>后来还有 combo 的问题，spm 项目进度比较慢，结果内部出现不少自主打包工作⋯⋯</p>
<p>不一一提了。</p>
]]></content:encoded>
	</item>
	<item>
		<title>asins 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2572</link>
		<dc:creator>asins</dc:creator>
		<pubDate>Fri, 11 Nov 2011 10:45:45 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2572</guid>
		<description>对于未打包的文件来说，一对一为佳，这样才能真正体现匿名define的意义，在看seajs时我也一直奇怪为何会出现这种有歧义的规则。
再者在从维护以及可读可查找的角度来说一对一也是更好的。</description>
		<content:encoded><![CDATA[<p>对于未打包的文件来说，一对一为佳，这样才能真正体现匿名define的意义，在看seajs时我也一直奇怪为何会出现这种有歧义的规则。<br />
再者在从维护以及可读可查找的角度来说一对一也是更好的。</p>
]]></content:encoded>
	</item>
	<item>
		<title>asins 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2571</link>
		<dc:creator>asins</dc:creator>
		<pubDate>Fri, 11 Nov 2011 10:41:15 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2571</guid>
		<description>seajs中一个文件中只能允许出现个一匿名模块，出现多个的话前者会被后者替换。</description>
		<content:encoded><![CDATA[<p>seajs中一个文件中只能允许出现个一匿名模块，出现多个的话前者会被后者替换。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2570</link>
		<dc:creator>army</dc:creator>
		<pubDate>Fri, 11 Nov 2011 10:31:07 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2570</guid>
		<description>另外我还有些疑惑。比如一个被合并起来的多个define文件，你的seajs里是否要求仅允许出现一个匿名模块？这些多个define的模块的uri是否相同？如果可以合并另外一个文件的匿名模块，那这个模块的id和uri又是什么？</description>
		<content:encoded><![CDATA[<p>另外我还有些疑惑。比如一个被合并起来的多个define文件，你的seajs里是否要求仅允许出现一个匿名模块？这些多个define的模块的uri是否相同？如果可以合并另外一个文件的匿名模块，那这个模块的id和uri又是什么？</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2565</link>
		<dc:creator>army</dc:creator>
		<pubDate>Fri, 11 Nov 2011 09:51:23 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2565</guid>
		<description>@lifesinger: 我突然想起来似乎还是有办法解决你的问题的。0的话好办，说明没有，可以在onload判断下。&gt;1的时候，其实还是借助打包工具，做小动作替换下这些文件？概念有点模糊，一时想不起来。</description>
		<content:encoded><![CDATA[<p>@lifesinger: 我突然想起来似乎还是有办法解决你的问题的。0的话好办，说明没有，可以在onload判断下。>1的时候，其实还是借助打包工具，做小动作替换下这些文件？概念有点模糊，一时想不起来。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2561</link>
		<dc:creator>army</dc:creator>
		<pubDate>Fri, 11 Nov 2011 09:36:44 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2561</guid>
		<description>@lifesinger: 其实我觉得1对1是个更好的拆分约定。1对1的强制约定就像java的一个文件只允许1个public class一样。在构建过程中强制1个文件1个模块，对开发维护阅读都是好处。合并或压缩之类的，应该交由工具去做，甚至这个工具对开发者来说都是不可见的。我最初设计的考虑就是只需开发单个的模块，后续工作开发者根本无需关心。
你因为兼容考虑不像我这样不用担心什么哈哈，其实这个东西目前还是个测试状态，离实行还很远。（历史遗留问题 T T）。
不过我感觉你可以考虑在seajs2中进行不兼容的升级。</description>
		<content:encoded><![CDATA[<p>@lifesinger: 其实我觉得1对1是个更好的拆分约定。1对1的强制约定就像java的一个文件只允许1个public class一样。在构建过程中强制1个文件1个模块，对开发维护阅读都是好处。合并或压缩之类的，应该交由工具去做，甚至这个工具对开发者来说都是不可见的。我最初设计的考虑就是只需开发单个的模块，后续工作开发者根本无需关心。<br />
你因为兼容考虑不像我这样不用担心什么哈哈，其实这个东西目前还是个测试状态，离实行还很远。（历史遗留问题 T T）。<br />
不过我感觉你可以考虑在seajs2中进行不兼容的升级。</p>
]]></content:encoded>
	</item>
	<item>
		<title>lifesinger 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2557</link>
		<dc:creator>lifesinger</dc:creator>
		<pubDate>Fri, 11 Nov 2011 08:30:58 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2557</guid>
		<description>嗯，在构建时增加约定是没问题的，能保证一对一应该就没问题。

seajs 的用户习惯比较原始，还是继续保持老方法来获取url。这样，一个模块里不用限定模块数，写了id的情况下，能和YUI3的方式保持兼容，也能使用combo服务，不用事先合并。</description>
		<content:encoded><![CDATA[<p>嗯，在构建时增加约定是没问题的，能保证一对一应该就没问题。</p>
<p>seajs 的用户习惯比较原始，还是继续保持老方法来获取url。这样，一个模块里不用限定模块数，写了id的情况下，能和YUI3的方式保持兼容，也能使用combo服务，不用事先合并。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2552</link>
		<dc:creator>army</dc:creator>
		<pubDate>Fri, 11 Nov 2011 08:10:19 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2552</guid>
		<description>@lifesinger: 这个我知道，所以我在打包的过程中做了一些“小动作”，被打包进来的模块是不进入defQueue的。</description>
		<content:encoded><![CDATA[<p>@lifesinger: 这个我知道，所以我在打包的过程中做了一些“小动作”，被打包进来的模块是不进入defQueue的。</p>
]]></content:encoded>
	</item>
	<item>
		<title>lifesinger 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2549</link>
		<dc:creator>lifesinger</dc:creator>
		<pubDate>Fri, 11 Nov 2011 07:55:59 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2549</guid>
		<description>下午开始重构，删了100多行代码，后来测试才发现根据回调顺序，信息依旧不完备，悲催了，回滚ing

假设 a.js 文件里，定义了 define(&#039;具名模块&#039;)
b.js 里，定义了匿名模块 define(factory)

具名模块可以在 define 运行时会确定好所有信息，直接 memoize
匿名模块延迟到 onload 阶段

当一个文件一个模块被严格遵守时，ABab 很有用，信息很完备。

但是是 a.js 里，有多个模块时，比如打包后的文件时，就无法确定 defQueque 的边界，确定不了哪些模块是 a.js 定义的

理想情况下，a.js 和 b.js 应该各自往 defQueque 添加一个 mod
真实情况下，a.js 往 defQueque 添加的项可能是 &gt;= 0 的任意值

只要不是 1，defQueque 中的信息就不完备。还是得用以前的方式来做。

郁闷ing</description>
		<content:encoded><![CDATA[<p>下午开始重构，删了100多行代码，后来测试才发现根据回调顺序，信息依旧不完备，悲催了，回滚ing</p>
<p>假设 a.js 文件里，定义了 define(&#8216;具名模块&#8217;)<br />
b.js 里，定义了匿名模块 define(factory)</p>
<p>具名模块可以在 define 运行时会确定好所有信息，直接 memoize<br />
匿名模块延迟到 onload 阶段</p>
<p>当一个文件一个模块被严格遵守时，ABab 很有用，信息很完备。</p>
<p>但是是 a.js 里，有多个模块时，比如打包后的文件时，就无法确定 defQueque 的边界，确定不了哪些模块是 a.js 定义的</p>
<p>理想情况下，a.js 和 b.js 应该各自往 defQueque 添加一个 mod<br />
真实情况下，a.js 往 defQueque 添加的项可能是 &gt;= 0 的任意值</p>
<p>只要不是 1，defQueque 中的信息就不完备。还是得用以前的方式来做。</p>
<p>郁闷ing</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2541</link>
		<dc:creator>army</dc:creator>
		<pubDate>Fri, 11 Nov 2011 03:40:51 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2541</guid>
		<description>如果键太长的话，可以考虑压缩一下，反正有hash链冲突的解决方案。（java的hashmap冲突解决算法）</description>
		<content:encoded><![CDATA[<p>如果键太长的话，可以考虑压缩一下，反正有hash链冲突的解决方案。（java的hashmap冲突解决算法）</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2540</link>
		<dc:creator>army</dc:creator>
		<pubDate>Fri, 11 Nov 2011 03:34:26 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2540</guid>
		<description>@army: 哦我想起来，因为构建工具过程中工具已经去除了注释，所以不需要考虑注释。</description>
		<content:encoded><![CDATA[<p>@army: 哦我想起来，因为构建工具过程中工具已经去除了注释，所以不需要考虑注释。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2539</link>
		<dc:creator>army</dc:creator>
		<pubDate>Fri, 11 Nov 2011 03:30:09 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2539</guid>
		<description>@army: 在一个页面中的模块数量是可预见的，所以我觉得那个hash所占内存不会有什么性能瓶颈的问题。</description>
		<content:encoded><![CDATA[<p>@army: 在一个页面中的模块数量是可预见的，所以我觉得那个hash所占内存不会有什么性能瓶颈的问题。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2538</link>
		<dc:creator>army</dc:creator>
		<pubDate>Fri, 11 Nov 2011 03:28:57 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2538</guid>
		<description>@lifesinger: 
1.我对规范的理解有误吧，把它当作全局的了。
2.我看看。
3.其实之前是去除注释的，后来不知为何又被我给删了。
4.不会覆盖的。那是个hash链的结构设计，相同键值是同一个hash，但被存在了一个数组中避免冲突。这是我想出来的依赖模块的相对路径设计。</description>
		<content:encoded><![CDATA[<p>@lifesinger:<br />
1.我对规范的理解有误吧，把它当作全局的了。<br />
2.我看看。<br />
3.其实之前是去除注释的，后来不知为何又被我给删了。<br />
4.不会覆盖的。那是个hash链的结构设计，相同键值是同一个hash，但被存在了一个数组中避免冲突。这是我想出来的依赖模块的相对路径设计。</p>
]]></content:encoded>
	</item>
	<item>
		<title>lifesinger 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2536</link>
		<dc:creator>lifesinger</dc:creator>
		<pubDate>Fri, 11 Nov 2011 02:52:07 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2536</guid>
		<description>阅读了下 view-source:http://js.tudouui.com/js/events/onload/index.html, 几点交流：

1.  exports 和 module 也是全局的？

2. 一个改进点：load 函数里，如果是 loading 状态，可以再注册一个onload就好，不需要自己维护 callback 列表。参考 seajs/src/fn-load.js#L150

3. 去除注释和提取依赖的正则，可以增强下：https://github.com/seajs/seajs/blob/master/src/fn-define.js#L90

4. fac 用 factory.toString() 做键值，虽然有 callee.caller 来保驾，但感觉这个键值好大，太长时不知会不会出问题，还有个隐患时，如果两个模块的 factory.toString 一样，后 define 的会覆盖先 define 的。这个设计感觉怪怪的。

其他的逻辑我没细看了，看起来是 AMD 的逻辑，和 seajs 的不同。

seajs 我在基于 ABab 这种逻辑重构下。</description>
		<content:encoded><![CDATA[<p>阅读了下 view-source:http://js.tudouui.com/js/events/onload/index.html, 几点交流：</p>
<p>1.  exports 和 module 也是全局的？</p>
<p>2. 一个改进点：load 函数里，如果是 loading 状态，可以再注册一个onload就好，不需要自己维护 callback 列表。参考 seajs/src/fn-load.js#L150</p>
<p>3. 去除注释和提取依赖的正则，可以增强下：https://github.com/seajs/seajs/blob/master/src/fn-define.js#L90</p>
<p>4. fac 用 factory.toString() 做键值，虽然有 callee.caller 来保驾，但感觉这个键值好大，太长时不知会不会出问题，还有个隐患时，如果两个模块的 factory.toString 一样，后 define 的会覆盖先 define 的。这个设计感觉怪怪的。</p>
<p>其他的逻辑我没细看了，看起来是 AMD 的逻辑，和 seajs 的不同。</p>
<p>seajs 我在基于 ABab 这种逻辑重构下。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2532</link>
		<dc:creator>army</dc:creator>
		<pubDate>Fri, 11 Nov 2011 02:03:59 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2532</guid>
		<description>@lifesinger: 因为是作为iframe嵌入某个页面的，可能在加载到一半时用户关闭了或点击链接跳转了。还有可能是网络问题导致某个js加载404。然而报错的信息为何会是那样还是很奇怪。</description>
		<content:encoded><![CDATA[<p>@lifesinger: 因为是作为iframe嵌入某个页面的，可能在加载到一半时用户关闭了或点击链接跳转了。还有可能是网络问题导致某个js加载404。然而报错的信息为何会是那样还是很奇怪。</p>
]]></content:encoded>
	</item>
	<item>
		<title>lifesinger 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2525</link>
		<dc:creator>lifesinger</dc:creator>
		<pubDate>Fri, 11 Nov 2011 00:04:27 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2525</guid>
		<description>测了几个主流的国产壳，一切正常
对那些错误，困惑了</description>
		<content:encoded><![CDATA[<p>测了几个主流的国产壳，一切正常<br />
对那些错误，困惑了</p>
]]></content:encoded>
	</item>
	<item>
		<title>lifesinger 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2524</link>
		<dc:creator>lifesinger</dc:creator>
		<pubDate>Fri, 11 Nov 2011 00:02:21 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2524</guid>
		<description>早上起来有个疑惑点，把测试页面的代码又看了一遍
昨晚的回复有个错误，没有用 Image.src 做缓存，我看错了</description>
		<content:encoded><![CDATA[<p>早上起来有个疑惑点，把测试页面的代码又看了一遍<br />
昨晚的回复有个错误，没有用 Image.src 做缓存，我看错了</p>
]]></content:encoded>
	</item>
	<item>
		<title>lifesinger 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2489</link>
		<dc:creator>lifesinger</dc:creator>
		<pubDate>Thu, 10 Nov 2011 15:41:43 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2489</guid>
		<description>从测试页面：http://js.tudouui.com/js/events/onload/index.html
上看，是整个完整的 loader

建议简化化，和我那个测试页面一样，尽可能简单，这样更准确。

此外，不建议用 Image.src 来做缓存，这个有问题，不靠谱。</description>
		<content:encoded><![CDATA[<p>从测试页面：http://js.tudouui.com/js/events/onload/index.html<br />
上看，是整个完整的 loader</p>
<p>建议简化化，和我那个测试页面一样，尽可能简单，这样更准确。</p>
<p>此外，不建议用 Image.src 来做缓存，这个有问题，不靠谱。</p>
]]></content:encoded>
	</item>
	<item>
		<title>lifesinger 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2488</link>
		<dc:creator>lifesinger</dc:creator>
		<pubDate>Thu, 10 Nov 2011 15:16:19 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2488</guid>
		<description>这个结论应该正确，我也做了个测试：
http://seajs.com/test/issues/onload/test.html

在各个浏览器下都测试没问题。看来可以通过这个方法获取到匿名模块对应的id，明天来看能否基于这个规律，优化下seajs在ie下的url获取逻辑。

之前微博上讨论那个，和承玉回忆了一下，是当有缓存时，getInteractiveScript 这种方式会失效，要采用“同步”获取的模式来获取url，最近发现cached时，同步模式获取url在ie6下有时也会失效，希望army这个研究能彻底解决ie6的url获取问题，明天尝试下，感谢。</description>
		<content:encoded><![CDATA[<p>这个结论应该正确，我也做了个测试：<br />
<a href="http://seajs.com/test/issues/onload/test.html" rel="nofollow">http://seajs.com/test/issues/onload/test.html</a></p>
<p>在各个浏览器下都测试没问题。看来可以通过这个方法获取到匿名模块对应的id，明天来看能否基于这个规律，优化下seajs在ie下的url获取逻辑。</p>
<p>之前微博上讨论那个，和承玉回忆了一下，是当有缓存时，getInteractiveScript 这种方式会失效，要采用“同步”获取的模式来获取url，最近发现cached时，同步模式获取url在ie6下有时也会失效，希望army这个研究能彻底解决ie6的url获取问题，明天尝试下，感谢。</p>
]]></content:encoded>
	</item>
	<item>
		<title>army 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2487</link>
		<dc:creator>army</dc:creator>
		<pubDate>Thu, 10 Nov 2011 13:45:39 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2487</guid>
		<description>我怀疑这些error是国产加壳浏览器所为。</description>
		<content:encoded><![CDATA[<p>我怀疑这些error是国产加壳浏览器所为。</p>
]]></content:encoded>
	</item>
	<item>
		<title>asins 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2485</link>
		<dc:creator>asins</dc:creator>
		<pubDate>Thu, 10 Nov 2011 07:11:48 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2485</guid>
		<description>总错误数	23338
总成功数	9099023
错误率：2.56‰

error中除去加载顺序正确的错误数

总错误数	16185
总成功数	9099023
错误率：1.776‰

还是有些不能接受啊！</description>
		<content:encoded><![CDATA[<p>总错误数	23338<br />
总成功数	9099023<br />
错误率：2.56‰</p>
<p>error中除去加载顺序正确的错误数</p>
<p>总错误数	16185<br />
总成功数	9099023<br />
错误率：1.776‰</p>
<p>还是有些不能接受啊！</p>
]]></content:encoded>
	</item>
	<item>
		<title>asins 关于 onload次序测试 的评论</title>
		<link>http://army8735.org/2011/11/10/1019.html/comment-page-1#comment-2484</link>
		<dc:creator>asins</dc:creator>
		<pubDate>Thu, 10 Nov 2011 07:01:43 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=1019#comment-2484</guid>
		<description>总错误数	23338
总成功数	9099023

错误率在0.256%</description>
		<content:encoded><![CDATA[<p>总错误数	23338<br />
总成功数	9099023</p>
<p>错误率在0.256%</p>
]]></content:encoded>
	</item>
	<item>
		<title>packy 关于 jQuery.getScript两个不如意的地方 的评论</title>
		<link>http://army8735.org/2011/02/14/944.html/comment-page-1#comment-2480</link>
		<dc:creator>packy</dc:creator>
		<pubDate>Wed, 09 Nov 2011 04:41:19 +0000</pubDate>
		<guid isPermaLink="false">http://army8735.org/?p=944#comment-2480</guid>
		<description>我现在开发就是用1.4.4的版本，这个问题在开发途中也与到了。jq底层有，可以用就没问题了。</description>
		<content:encoded><![CDATA[<p>我现在开发就是用1.4.4的版本，这个问题在开发途中也与到了。jq底层有，可以用就没问题了。</p>
]]></content:encoded>
	</item>
</channel>
</rss>

