<?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>Comments on: ppk on JavaScript第二章：背景（一）</title>
	<atom:link href="http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/feed/" rel="self" type="application/rss+xml" />
	<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/</link>
	<description>web 标准，前端开发，编程感悟，生活杂想</description>
	<lastBuildDate>Mon, 22 Feb 2010 09:15:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: GalaxySong</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-23492</link>
		<dc:creator>GalaxySong</dc:creator>
		<pubDate>Mon, 25 Jun 2007 07:45:37 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-23492</guid>
		<description>在较大的应用中，JS 文件应该分为3种：
1) 类包。有些像 Java ，但也不能生搬硬套。发布时，可以把所有类包合并并压缩为一个 js 文件。
2) 环境设置。开发时和发布后的环境（如图片路径）可能是不同的。
3) 跟随页面的代码。把所有原本可能分散在页面中的 Script 统统何在一处。它们往往调用了类包来满足当前页面的具体需求。
零散的 script 是很不好的。html 应该专心扮演结构的角色，不要硬绑定行为。
设计良好的 JS 应该充分发挥闭包的功效，并最小化全局变量的使用。所以，html 元素只能被动地由 JS 对象来绑定，而不是相反。</description>
		<content:encoded><![CDATA[<p>在较大的应用中，JS 文件应该分为3种：<br />
1) 类包。有些像 Java ，但也不能生搬硬套。发布时，可以把所有类包合并并压缩为一个 js 文件。<br />
2) 环境设置。开发时和发布后的环境（如图片路径）可能是不同的。<br />
3) 跟随页面的代码。把所有原本可能分散在页面中的 Script 统统何在一处。它们往往调用了类包来满足当前页面的具体需求。<br />
零散的 script 是很不好的。html 应该专心扮演结构的角色，不要硬绑定行为。<br />
设计良好的 JS 应该充分发挥闭包的功效，并最小化全局变量的使用。所以，html 元素只能被动地由 JS 对象来绑定，而不是相反。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: wkx</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-13307</link>
		<dc:creator>wkx</dc:creator>
		<pubDate>Fri, 23 Mar 2007 09:28:25 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-13307</guid>
		<description>支持web标准</description>
		<content:encoded><![CDATA[<p>支持web标准</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ihibin</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-11100</link>
		<dc:creator>ihibin</dc:creator>
		<pubDate>Tue, 27 Feb 2007 08:24:55 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-11100</guid>
		<description>译的不错，顶了！！</description>
		<content:encoded><![CDATA[<p>译的不错，顶了！！</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: {&#124;ihower.idv.tw&#124; blog } &#187; ppk on JavaScript</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-10492</link>
		<dc:creator>{&#124;ihower.idv.tw&#124; blog } &#187; ppk on JavaScript</dc:creator>
		<pubDate>Sun, 18 Feb 2007 18:23:30 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-10492</guid>
		<description>[...] 前兩章 Purpose 跟 Context 非常非常精采，作者就像說故事一樣娓娓道來，全貌性把 JavaScript 的來龍去脈講了一遍，realazy有做了書摘( JavaScript的目的、背景一、背景二、背景三 )，我就不多詳述了。 [...]</description>
		<content:encoded><![CDATA[<p>[...] 前兩章 Purpose 跟 Context 非常非常精采，作者就像說故事一樣娓娓道來，全貌性把 JavaScript 的來龍去脈講了一遍，realazy有做了書摘( JavaScript的目的、背景一、背景二、背景三 )，我就不多詳述了。 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cvpc</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-9542</link>
		<dc:creator>cvpc</dc:creator>
		<pubDate>Sat, 10 Feb 2007 13:41:12 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-9542</guid>
		<description>感谢分享，你的Blog不错</description>
		<content:encoded><![CDATA[<p>感谢分享，你的Blog不错</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SOOW</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-9133</link>
		<dc:creator>SOOW</dc:creator>
		<pubDate>Thu, 08 Feb 2007 10:01:33 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-9133</guid>
		<description>原来代码是这样写的:-)
不错,偶然发现这里的,希望自己有一天也可以和你一样,可以做到传道/受业/解惑
更希望有机会和你切磋一下</description>
		<content:encoded><![CDATA[<p>原来代码是这样写的:-)<br />
不错,偶然发现这里的,希望自己有一天也可以和你一样,可以做到传道/受业/解惑<br />
更希望有机会和你切磋一下</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SONIC</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-4586</link>
		<dc:creator>SONIC</dc:creator>
		<pubDate>Sun, 31 Dec 2006 06:13:19 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-4586</guid>
		<description>又是行为与结构分离的文章，收藏。
不过对于复杂结构的HTML文档。就如dulao5所说，确实存在着提高开发成本的问题！</description>
		<content:encoded><![CDATA[<p>又是行为与结构分离的文章，收藏。<br />
不过对于复杂结构的HTML文档。就如dulao5所说，确实存在着提高开发成本的问题！</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mike</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-4426</link>
		<dc:creator>mike</dc:creator>
		<pubDate>Mon, 25 Dec 2006 02:34:30 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-4426</guid>
		<description>没有绝对的。
分离有分离的好，内嵌有内嵌的好。一切还是给通过项目来决定。在这个瞬息万便的社会，没有绝对的定理。以上只代表偶的个人观点。。大家看之一笑 ^_^</description>
		<content:encoded><![CDATA[<p>没有绝对的。<br />
分离有分离的好，内嵌有内嵌的好。一切还是给通过项目来决定。在这个瞬息万便的社会，没有绝对的定理。以上只代表偶的个人观点。。大家看之一笑 ^_^</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PorkFat</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-4417</link>
		<dc:creator>PorkFat</dc:creator>
		<pubDate>Sun, 24 Dec 2006 20:32:06 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-4417</guid>
		<description>对dulao5谈到的问题，第一个我理解是开发成本的问题，通过敏捷的团队模型和规范化的流程还是可以减少这个问题的严重性的；第二个是说有没有必要这么做吧，因为把表现与结构分离，在浏览器端就常有可能看到xhtml下载完而css还没有加载的裸体页面，而把行为与结构分离，我不理解为什么又有这样的顾忌，其实这并没有什么大不了呀，三者分离本来就是我们扯了好几年的webstandards的思想，这样好像又回到原点了……</description>
		<content:encoded><![CDATA[<p>对dulao5谈到的问题，第一个我理解是开发成本的问题，通过敏捷的团队模型和规范化的流程还是可以减少这个问题的严重性的；第二个是说有没有必要这么做吧，因为把表现与结构分离，在浏览器端就常有可能看到xhtml下载完而css还没有加载的裸体页面，而把行为与结构分离，我不理解为什么又有这样的顾忌，其实这并没有什么大不了呀，三者分离本来就是我们扯了好几年的webstandards的思想，这样好像又回到原点了……</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dulao5</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-4359</link>
		<dc:creator>dulao5</dc:creator>
		<pubDate>Sat, 23 Dec 2006 08:48:25 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-4359</guid>
		<description>你作了那么多css，和那么多团队合作过，怎么能说没有经验呢，谦虚了吧:)

实际上我们做这些研究，目的只有一个，就是怎么把工作做的漂亮。实际上本文和软件开发都是一个范围的，可以放到一起讨论的:)</description>
		<content:encoded><![CDATA[<p>你作了那么多css，和那么多团队合作过，怎么能说没有经验呢，谦虚了吧:)</p>
<p>实际上我们做这些研究，目的只有一个，就是怎么把工作做的漂亮。实际上本文和软件开发都是一个范围的，可以放到一起讨论的:)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: realazy</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-4352</link>
		<dc:creator>realazy</dc:creator>
		<pubDate>Sat, 23 Dec 2006 03:28:22 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-4352</guid>
		<description>老五，你看问题太专业了，哈哈，我没啥开发经验，你已经把问题引申到软件工业的开发、发布等流程上了，大大超出了我们的范畴。不过你的观点对我们这篇文章有很好的补充作用，谢谢你花时间打这么多的字，哈哈，代表读者们感谢你。</description>
		<content:encoded><![CDATA[<p>老五，你看问题太专业了，哈哈，我没啥开发经验，你已经把问题引申到软件工业的开发、发布等流程上了，大大超出了我们的范畴。不过你的观点对我们这篇文章有很好的补充作用，谢谢你花时间打这么多的字，哈哈，代表读者们感谢你。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dulao5</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-4350</link>
		<dc:creator>dulao5</dc:creator>
		<pubDate>Sat, 23 Dec 2006 02:30:22 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-4350</guid>
		<description>的确要分情况来讨论这个问题（面向任务还是面向信息呢？）；

如果是一个专门的richclient应用：

html会很复杂，事件句柄也很复杂，那么维护他们的映射关系、修改和测试、发布都会很复杂。
而且html可能是一些琐碎的模版文件，他们也可能动态的被载入，所以也可能需要动态的为相应的模版做“事件句柄”赋值。
对于复杂的系统，团队协作是很重要的，rich client应用更是这样，UI、HTML/CSS、js各方面都要配合，所以寻找一种实用而有效的合作方式是非常必要的。

我的意思并不是说“写内联js方便多了”，所以js人员怎么方便怎么来吧。当然不是这样了，我的意思是我们要寻找更有效的合作方式，或许你的观点，可以在一些框架、工具、策略的支持下，得到实现。当然，项目的配置管理成本也相应的提高了。

讨论一些可行方法：
  原始的赋值语句肯定是不行的；
  也许你说的jQuery能帮上忙；
  id和事件句柄做一些名字上的特殊关联，通过运行时脚本进行赋值处理；
  象上面我说的，发布时使用工具处理这个问题也是好办法（减少了js的运行时间）。

其实这是软件开发中的一个经典问题，即如何对系统解耦？
开发的过程中需要对模块进行解耦，降低耦合性，提高内聚性；
但是开发完毕运行系统时，又需要把模块耦合到一起才能工作。
这里有一个“度”的问题，要看开发过程中的实际情况来定。

至于一些普通站点，我想实现你的观点没什么问题，少量的js脚本代价不大。html美观，js怡人，皆大欢喜:D。</description>
		<content:encoded><![CDATA[<p>的确要分情况来讨论这个问题（面向任务还是面向信息呢？）；</p>
<p>如果是一个专门的richclient应用：</p>
<p>html会很复杂，事件句柄也很复杂，那么维护他们的映射关系、修改和测试、发布都会很复杂。<br />
而且html可能是一些琐碎的模版文件，他们也可能动态的被载入，所以也可能需要动态的为相应的模版做“事件句柄”赋值。<br />
对于复杂的系统，团队协作是很重要的，rich client应用更是这样，UI、HTML/CSS、js各方面都要配合，所以寻找一种实用而有效的合作方式是非常必要的。</p>
<p>我的意思并不是说“写内联js方便多了”，所以js人员怎么方便怎么来吧。当然不是这样了，我的意思是我们要寻找更有效的合作方式，或许你的观点，可以在一些框架、工具、策略的支持下，得到实现。当然，项目的配置管理成本也相应的提高了。</p>
<p>讨论一些可行方法：<br />
  原始的赋值语句肯定是不行的；<br />
  也许你说的jQuery能帮上忙；<br />
  id和事件句柄做一些名字上的特殊关联，通过运行时脚本进行赋值处理；<br />
  象上面我说的，发布时使用工具处理这个问题也是好办法（减少了js的运行时间）。</p>
<p>其实这是软件开发中的一个经典问题，即如何对系统解耦？<br />
开发的过程中需要对模块进行解耦，降低耦合性，提高内聚性；<br />
但是开发完毕运行系统时，又需要把模块耦合到一起才能工作。<br />
这里有一个“度”的问题，要看开发过程中的实际情况来定。</p>
<p>至于一些普通站点，我想实现你的观点没什么问题，少量的js脚本代价不大。html美观，js怡人，皆大欢喜:D。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: realazy</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-4329</link>
		<dc:creator>realazy</dc:creator>
		<pubDate>Fri, 22 Dec 2006 14:45:51 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-4329</guid>
		<description>我的看法是，就像我前篇blog描述的，要看js用处了：面向任务还是面向信息呢？毫无疑问，像gmail这种运行在浏览器中的“软件”分离其实没有多大意义，也没有多大必要，因为它里面的HTML只是UI组件而已，没有或者很少需要传达信息。

你的看法很有道理，但是我也可以举个反例，元素不也是可以直接用&lt;code&gt;style&lt;/code&gt;属性来定义样式吗？那为什么还要给&lt;code&gt;class&lt;/code&gt;或者&lt;code&gt;id&lt;/code&gt;呢而不是直接内嵌样式就行了？从逻辑上说，分离了样式，为何不分离行为呢？呵呵。

至于你说的浏览器需要一个时机才能执行js，确实，传统的&lt;code&gt;window.onload&lt;/code&gt;弊病多多，但是进入web标准时代，世界级开发者不会等闲视之的，我相信你也知道了&lt;a href=&quot;http://dean.edwards.name/weblog/2005/09/busted/&quot; rel=&quot;nofollow&quot;&gt;Dean Edward的解决方案&lt;/a&gt;了吧？现在的大部分js框架都提供了DOM载入完毕即可立即执行js的功能（比较有名的就是jQuery的&lt;code&gt;$(document).ready()&lt;/code&gt;了，所以这个不是问题。

一句话，我想你的真正想法（原谅我瞎猜）应该是，写内联js方便多了，不用再定义一个调用的hook。其实，JavaScript可以和CSS共享hook啊（这点对jQuery来说太轻松了）。</description>
		<content:encoded><![CDATA[<p>我的看法是，就像我前篇blog描述的，要看js用处了：面向任务还是面向信息呢？毫无疑问，像gmail这种运行在浏览器中的“软件”分离其实没有多大意义，也没有多大必要，因为它里面的HTML只是UI组件而已，没有或者很少需要传达信息。</p>
<p>你的看法很有道理，但是我也可以举个反例，元素不也是可以直接用<code>style</code>属性来定义样式吗？那为什么还要给<code>class</code>或者<code>id</code>呢而不是直接内嵌样式就行了？从逻辑上说，分离了样式，为何不分离行为呢？呵呵。</p>
<p>至于你说的浏览器需要一个时机才能执行js，确实，传统的<code>window.onload</code>弊病多多，但是进入web标准时代，世界级开发者不会等闲视之的，我相信你也知道了<a href="http://dean.edwards.name/weblog/2005/09/busted/" rel="nofollow">Dean Edward的解决方案</a>了吧？现在的大部分js框架都提供了DOM载入完毕即可立即执行js的功能（比较有名的就是jQuery的<code>$(document).ready()</code>了，所以这个不是问题。</p>
<p>一句话，我想你的真正想法（原谅我瞎猜）应该是，写内联js方便多了，不用再定义一个调用的hook。其实，JavaScript可以和CSS共享hook啊（这点对jQuery来说太轻松了）。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dulao5</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-4326</link>
		<dc:creator>dulao5</dc:creator>
		<pubDate>Fri, 22 Dec 2006 13:42:02 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-4326</guid>
		<description>彻底把html中的事件句柄放到js中，有两个问题：
1。如果html中有为数居多的不同的事件句柄，那么需要在测试和修改的后续过程中，维护js中的赋值语句和html中属性的映射关系。
当然，似乎有办法：
html在设计时仍然使用内嵌的事件句柄；发布时使用智能程序提取html里面的事件属性，自动生成js。
2。比较头疼的问题：如果html内直接嵌入js事件属性，那么浏览器可以在html下载未完成的过程中，一边下载一边解析html，让这些js事件句柄生效。而分离到js后，浏览器需要一个时机才能执行那些js语句，给html内的事件句柄赋值。

安安说的是标准化的理想，现实似乎还没有到达这种程度。

我觉得事件句柄其实并不属于javascript的范畴，它们只是html元素的一种属性而已；
事件句柄和元素的className相比，似乎区别不大，都是一种超出html本身的扩展，只不过一个是行为，一个是表现。</description>
		<content:encoded><![CDATA[<p>彻底把html中的事件句柄放到js中，有两个问题：<br />
1。如果html中有为数居多的不同的事件句柄，那么需要在测试和修改的后续过程中，维护js中的赋值语句和html中属性的映射关系。<br />
当然，似乎有办法：<br />
html在设计时仍然使用内嵌的事件句柄；发布时使用智能程序提取html里面的事件属性，自动生成js。<br />
2。比较头疼的问题：如果html内直接嵌入js事件属性，那么浏览器可以在html下载未完成的过程中，一边下载一边解析html，让这些js事件句柄生效。而分离到js后，浏览器需要一个时机才能执行那些js语句，给html内的事件句柄赋值。</p>
<p>安安说的是标准化的理想，现实似乎还没有到达这种程度。</p>
<p>我觉得事件句柄其实并不属于javascript的范畴，它们只是html元素的一种属性而已；<br />
事件句柄和元素的className相比，似乎区别不大，都是一种超出html本身的扩展，只不过一个是行为，一个是表现。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aether</title>
		<link>http://chen.xianan.name/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/comment-page-1/#comment-4310</link>
		<dc:creator>Aether</dc:creator>
		<pubDate>Fri, 22 Dec 2006 05:01:38 +0000</pubDate>
		<guid isPermaLink="false">http://realazy.org/blog/2006/12/21/ppk-on-javascript-study-note-part02-1/#comment-4310</guid>
		<description>我觉得所谓彻底分离这样的说法，还是过于偏执，把零碎的，临时的，仅对该页面有效的js放在页面中，反而会给维护带来好处，也减轻了整体架构的复杂程度，好处多多。</description>
		<content:encoded><![CDATA[<p>我觉得所谓彻底分离这样的说法，还是过于偏执，把零碎的，临时的，仅对该页面有效的js放在页面中，反而会给维护带来好处，也减轻了整体架构的复杂程度，好处多多。</p>
]]></content:encoded>
	</item>
</channel>
</rss>
