<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>UXD2</title>
	<atom:link href="http://www.uxd2.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.uxd2.com</link>
	<description>用户, 体验, 设计 &#38; 开发</description>
	<lastBuildDate>Tue, 16 Mar 2010 17:38:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>2010/02/03 到 2010/03/16 之间保存的网页</title>
		<link>http://www.uxd2.com/2010/03/20100203-%e5%88%b0-20100316-%e4%b9%8b%e9%97%b4%e4%bf%9d%e5%ad%98%e7%9a%84%e7%bd%91%e9%a1%b5/</link>
		<comments>http://www.uxd2.com/2010/03/20100203-%e5%88%b0-20100316-%e4%b9%8b%e9%97%b4%e4%bf%9d%e5%ad%98%e7%9a%84%e7%bd%91%e9%a1%b5/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 17:38:05 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Bookmarks (书签)]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=132</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://www.smashingmagazine.com/2010/03/12/45-fresh-useful-javascript-and-jquery-techniques-and-tools/">45 Fresh Useful JavaScript and jQuery Techniques and Tools &#8211; Smashing Magazine</a> &#8211; </li>
<li><a href="http://uxmag.com/design/rich-internet-application-screen-design">Rich Internet Application Screen Design | UX Magazine</a> &#8211; </li>
<li><a href="http://uxmag.com/design/rich-internet-application-screen-design?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+UXM+(UX+Magazine)&amp;utm_content=Google+Reader">Rich Internet Application Screen Design | UX Magazine</a> &#8211; </li>
<li><a href="http://www.smashingmagazine.com/2010/02/10/some-things-you-should-know-about-ajax/">Developing Sites With AJAX: Design Challenges and Common Issues &#8211; Smashing Magazine</a> &#8211; </li>
<li><a href="http://lesscss.org/">LESS &#8211; Leaner CSS</a> &#8211; </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/03/20100203-%e5%88%b0-20100316-%e4%b9%8b%e9%97%b4%e4%bf%9d%e5%ad%98%e7%9a%84%e7%bd%91%e9%a1%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>漫画: 设计师与程序员不可调和的矛盾</title>
		<link>http://www.uxd2.com/2010/02/%e6%bc%ab%e7%94%bb-%e8%ae%be%e8%ae%a1%e5%b8%88%e4%b8%8e%e7%a8%8b%e5%ba%8f%e5%91%98%e4%b8%8d%e5%8f%af%e8%b0%83%e5%92%8c%e7%9a%84%e7%9f%9b%e7%9b%be/</link>
		<comments>http://www.uxd2.com/2010/02/%e6%bc%ab%e7%94%bb-%e8%ae%be%e8%ae%a1%e5%b8%88%e4%b8%8e%e7%a8%8b%e5%ba%8f%e5%91%98%e4%b8%8d%e5%8f%af%e8%b0%83%e5%92%8c%e7%9a%84%e7%9f%9b%e7%9b%be/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 17:53:47 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Design (设计)]]></category>
		<category><![CDATA[Development (开发)]]></category>
		<category><![CDATA[搞笑]]></category>
		<category><![CDATA[漫画]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=219</guid>
		<description><![CDATA[设计师与程序员那复杂纠结而又不可分割的关系。 来源: http://www.webdesignerdepot.com/2010/02/comics-of-the-week-12/]]></description>
			<content:encoded><![CDATA[<p>设计师与程序员那复杂纠结而又不可分割的关系。<br />
<a href="http://www.webdesignerdepot.com/2010/02/comics-of-the-week-12/"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/designdeveloperconflict.png" alt="" title="designdeveloperconflict" width="500" height="366" class="alignnone size-full wp-image-220" /></a></p>
<p>来源: <a href="http://www.webdesignerdepot.com/2010/02/comics-of-the-week-12/">http://www.webdesignerdepot.com/2010/02/comics-of-the-week-12/</</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/02/%e6%bc%ab%e7%94%bb-%e8%ae%be%e8%ae%a1%e5%b8%88%e4%b8%8e%e7%a8%8b%e5%ba%8f%e5%91%98%e4%b8%8d%e5%8f%af%e8%b0%83%e5%92%8c%e7%9a%84%e7%9f%9b%e7%9b%be/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>新潮流: 表格变填空 &#8211; 与冷冰冰的网页对话</title>
		<link>http://www.uxd2.com/2010/02/%e6%96%b0%e6%bd%ae%e6%b5%81-%e8%a1%a8%e6%a0%bc%e5%8f%98%e5%a1%ab%e7%a9%ba-%e4%b8%8e%e5%86%b7%e5%86%b0%e5%86%b0%e7%9a%84%e7%bd%91%e9%a1%b5%e5%af%b9%e8%af%9d/</link>
		<comments>http://www.uxd2.com/2010/02/%e6%96%b0%e6%bd%ae%e6%b5%81-%e8%a1%a8%e6%a0%bc%e5%8f%98%e5%a1%ab%e7%a9%ba-%e4%b8%8e%e5%86%b7%e5%86%b0%e5%86%b0%e7%9a%84%e7%bd%91%e9%a1%b5%e5%af%b9%e8%af%9d/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 18:13:49 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Experience (体验)]]></category>
		<category><![CDATA[人性化]]></category>
		<category><![CDATA[创新]]></category>
		<category><![CDATA[网页]]></category>
		<category><![CDATA[表格]]></category>
		<category><![CDATA[设计]]></category>
		<category><![CDATA[转化率]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=204</guid>
		<description><![CDATA[还记得英语考试里的填空题吧? 在考场以外，貌似填空这种模式比整齐划一的表格更让人感到亲切。 今天@lukewdesign在网站上发表了一篇短文，解释了一下填空模式表格的实验，初步发现转化率提高了25-40%，可以说是非常显著。 看了图就明白了，这个界面是与汽车经纪联系，询问汽车记录的页面。比较左面与右面的两幅图，我似乎能感觉到左面的图是冷的，右面的图是热的。 细节比较 语气变化 指示性的&#8221;联系这个经销商”，被换作第一人称“我感兴趣”。同时也避免了“经销商”这个往往给人虚伪感觉的词。 人形图标 虽然可能这个人形图标看起来不显眼，但是让人不经意间感受到似乎是在与一个人交互。注意两幅图里经销商的名字不一样，电话也不同。这是实验的设计，在不同的经销商的页面使用不同的界面，以方便比较。 主体嵌入 问答式的表格变成了一个短信的一部分，似乎让人感受不到在给出私人信息，而只是填充必要的联络方式。因而让人感觉更亲切。此外，“必填”的字样似乎也不再需要了。 一个谢谢送温暖 不过我有点搞不清楚这个是作为短信的一部分表示用户谢谢还是网页谢谢用户。 我觉得这个必将成为潮流，你觉得有什么启发么？ 来源: http://www.lukew.com/ff/entry.asp?1007, Luke Wroblewski (@Lukewdesign) 是Yahoo!当前的首席设计架构师。]]></description>
			<content:encoded><![CDATA[<p>还记得英语考试里的填空题吧? 在考场以外，貌似填空这种模式比整齐划一的表格更让人感到亲切。</p>
<p>今天<a href="http://twitter.com/lukewdesign">@lukewdesign</a>在网站上发表了一篇短文，解释了一下填空模式表格的实验，初步发现转化率提高了25-40%，可以说是非常显著。</p>
<p>看了图就明白了，这个界面是与汽车经纪联系，询问汽车记录的页面。比较左面与右面的两幅图，我似乎能感觉到左面的图是冷的，右面的图是热的。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/compare.jpg" rel="lightbox[204]"><img class="alignnone size-full wp-image-209" title="compare" src="http://www.uxd2.com/wp-content/uploads/2010/02/compare.jpg" alt="" width="500" height="500" /></a></p>
<p><span id="more-204"></span></p>
<h2>细节比较</h2>
<p><strong>语气变化</strong></p>
<p>指示性的&#8221;联系这个经销商”，被换作第一人称“我感兴趣”。同时也避免了“经销商”这个往往给人虚伪感觉的词。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/compare1.jpg" rel="lightbox[204]"><img class="alignnone size-full wp-image-205" title="compare1" src="http://www.uxd2.com/wp-content/uploads/2010/02/compare1.jpg" alt="" width="500" height="67" /></a></p>
<p><strong>人形图标</strong></p>
<p>虽然可能这个人形图标看起来不显眼，但是让人不经意间感受到似乎是在与一个人交互。注意两幅图里经销商的名字不一样，电话也不同。这是实验的设计，在不同的经销商的页面使用不同的界面，以方便比较。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/compare2.jpg" rel="lightbox[204]"><img class="alignnone size-full wp-image-206" title="compare2" src="http://www.uxd2.com/wp-content/uploads/2010/02/compare2.jpg" alt="" width="500" height="116" /></a></p>
<p><strong>主体嵌入</strong></p>
<p>问答式的表格变成了一个短信的一部分，似乎让人感受不到在给出私人信息，而只是填充必要的联络方式。因而让人感觉更亲切。此外，“必填”的字样似乎也不再需要了。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/compare3.jpg" rel="lightbox[204]"><img class="alignnone size-full wp-image-207" title="compare3" src="http://www.uxd2.com/wp-content/uploads/2010/02/compare3.jpg" alt="" width="500" height="400" /></a></p>
<p><strong>一个谢谢送温暖</strong></p>
<p>不过我有点搞不清楚这个是作为短信的一部分表示用户谢谢还是网页谢谢用户。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/compare4.jpg" rel="lightbox[204]"><img class="alignnone size-full wp-image-208" title="compare4" src="http://www.uxd2.com/wp-content/uploads/2010/02/compare4.jpg" alt="" width="500" height="213" /></a></p>
<h2>我觉得这个必将成为潮流，你觉得有什么启发么？</h2>
<p>来源: <a href="http://www.lukew.com/ff/entry.asp?1007">http://www.lukew.com/ff/entry.asp?1007</a>, Luke Wroblewski (@Lukewdesign) 是Yahoo!当前的首席设计架构师。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/02/%e6%96%b0%e6%bd%ae%e6%b5%81-%e8%a1%a8%e6%a0%bc%e5%8f%98%e5%a1%ab%e7%a9%ba-%e4%b8%8e%e5%86%b7%e5%86%b0%e5%86%b0%e7%9a%84%e7%bd%91%e9%a1%b5%e5%af%b9%e8%af%9d/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>漫画:IE6这一辈子</title>
		<link>http://www.uxd2.com/2010/02/%e6%bc%ab%e7%94%bbie6%e8%bf%99%e4%b8%80%e8%be%88%e5%ad%90/</link>
		<comments>http://www.uxd2.com/2010/02/%e6%bc%ab%e7%94%bbie6%e8%bf%99%e4%b8%80%e8%be%88%e5%ad%90/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 17:07:08 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Featured (推荐)]]></category>
		<category><![CDATA[User (用户)]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[历史]]></category>
		<category><![CDATA[浏览器]]></category>
		<category><![CDATA[漫画]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=192</guid>
		<description><![CDATA[原作者网站: http://bradcolbow.com/ 原作者内容授权方式: Creative Commons 2.5 原文地址 转载请务必注明原作者署名: Brad Colbow]]></description>
			<content:encoded><![CDATA[<p>原作者网站: <a href="http://bradcolbow.com/">http://bradcolbow.com/</a><br />
原作者内容授权方式: <a href="http://creativecommons.org/licenses/by/2.5/deed.zh">Creative Commons 2.5</a><br />
<a href="http://www.smashingmagazine.com/2010/02/11/the-life-times-and-death-of-internet-explorer-6-comic-strip/">原文地址</a></p>
<p><strong>转载请务必注明原作者署名: Brad Colbow</strong></p>
<p><img src="http://www.uxd2.com/wp-content/uploads/2010/02/ie6life-01.jpg" alt="" title="ie6life-01" width="500" height="666" class="alignnone size-full wp-image-195" /><span id="more-192"></span><br />
<img src="http://www.uxd2.com/wp-content/uploads/2010/02/ie6life-02.jpg" alt="" title="ie6life-02" width="500" height="922" class="alignnone size-full wp-image-196" /><br />
<img src="http://www.uxd2.com/wp-content/uploads/2010/02/ie6life-03.jpg" alt="" title="ie6life-03" width="500" height="549" class="alignnone size-full wp-image-197" /><br />
<img src="http://www.uxd2.com/wp-content/uploads/2010/02/ie6life-04.jpg" alt="" title="ie6life-04" width="500" height="501" class="alignnone size-full wp-image-194" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/02/%e6%bc%ab%e7%94%bbie6%e8%bf%99%e4%b8%80%e8%be%88%e5%ad%90/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>26名当世最有影响力的设计师</title>
		<link>http://www.uxd2.com/2010/02/26%e5%90%8d%e5%bd%93%e4%b8%96%e6%9c%80%e6%9c%89%e5%bd%b1%e5%93%8d%e5%8a%9b%e7%9a%84%e8%ae%be%e8%ae%a1%e5%b8%88/</link>
		<comments>http://www.uxd2.com/2010/02/26%e5%90%8d%e5%bd%93%e4%b8%96%e6%9c%80%e6%9c%89%e5%bd%b1%e5%93%8d%e5%8a%9b%e7%9a%84%e8%ae%be%e8%ae%a1%e5%b8%88/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 04:41:10 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Design (设计)]]></category>
		<category><![CDATA[Experience (体验)]]></category>
		<category><![CDATA[Featured (推荐)]]></category>
		<category><![CDATA[影响]]></category>
		<category><![CDATA[设计]]></category>
		<category><![CDATA[设计师]]></category>
		<category><![CDATA[领袖]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=128</guid>
		<description><![CDATA[前言: Business Week 最新公布了26名世界上最有影响力的设计师。当然这里的&#8221;设计&#8221;是广义的设计，并不局限于图形或是可用性等单一方面。但是我们依然可以在他们身上学到作为任何设计人员所应有的独立思考的能力。 什么是具有影响力(influential)? 首先我想说，并不是名气大就有影响力。名气大的人或机构往往只是一个媒介，来传播思想领袖的观点，并不一定是自己提出的思想，可以说是“被影响”的群体。我认为，能被称为有影响力的人，一要坚定不移的向世人推广自己的观点，二要以各种方式和途径将设想变成现实。这不是一件容易的事。当你在风口浪尖或者是时代的尖端的时候，你会发现身边并没有什么帮手或是朋友，你遇到的大多数都是质疑，这种压力并不是任何人都能够承受。只有将自己的观点当作信仰，才能够坚持下来。但是成功的人，往往能够改变这个世界。 所以我认为对他们的简要介绍和罗列，能够折射出当前世界上的重要进步。当然这里的介绍可以说是浅尝辄止。权作一个索引，我们可以对其中感兴趣的人物进行深入了解。 这篇并不是翻译。因为实际开始翻译的时候我发现原文文字实在太不流畅，若按字面意思翻译不但很多词汇中文里没有对应的意思，而且逻辑的脉络也不是很清楚。曾想干脆放弃，但是觉得了解一下他们确实有一些意义，所以只好折中一下，将每人的简短介绍分为经历，理念，与项目三个要点总结。希望能够不失原文本意。 原文地址: http://images.businessweek.com/ss/10/02/0201_worlds_most_influential_designers/index.htm 转载请注作者署名:coolnalu。谢谢! 1. Paola Antonelli 经历 纽约现代艺术馆,建筑与设计馆资深馆长, 2006年获美国国家设计奖 &#8211; “Design Mind”奖。 理念 坚持推广(公众)对设计的理解，直到设计对世界的正面影响被全部接受并利用为止。 项目 曾担任数个热门展出的监督。这些展出无一不拓展了人们对“设计”的日常定义。 2. Janine Benyus 经历 Biomimicry Guild &#8211; 创新咨询顾问公司创始人，仿生学先驱之一 理念 帮助公司和机构开发基于自然界中“最佳方法”的产品和策略 项目 曾向通用电气，通用磨坊(译注:哈根达斯背后的老板),和惠普等公司的高管们传述如何让公司通过仿生学受益 3. Tim Brown 经历 IDEO的首席执行官兼主席 理念 Design Thinking 项目 从宏观的高度向微软，百事，宝洁等大型跨国企业推广设计的战略意义。在达沃斯等世界经济论坛宣传设计给商业和世界带来的变革。 4. Bill Buxton 经历 作曲家和演出者出身，曾在Xerorx Parc和Alias/Wavefront供职，时任微软的首席研究员之一，Bloomberg/BusinessWeek的常任专栏作家 理念 将人的价值，文化和技术融于作品里 5.Valerie [...]]]></description>
			<content:encoded><![CDATA[<p><strong>前言:</strong> Business Week 最新公布了26名世界上最有影响力的设计师。当然这里的&#8221;设计&#8221;是广义的设计，并不局限于图形或是可用性等单一方面。但是我们依然可以在他们身上学到作为任何设计人员所应有的独立思考的能力。</p>
<p>什么是具有影响力(influential)? 首先我想说，并不是名气大就有影响力。名气大的人或机构往往只是一个媒介，来传播思想领袖的观点，并不一定是自己提出的思想，可以说是“被影响”的群体。我认为，能被称为有影响力的人，一要坚定不移的向世人推广自己的观点，二要以各种方式和途径将设想变成现实。这不是一件容易的事。当你在风口浪尖或者是时代的尖端的时候，你会发现身边并没有什么帮手或是朋友，你遇到的大多数都是质疑，这种压力并不是任何人都能够承受。只有将自己的观点当作信仰，才能够坚持下来。但是成功的人，往往能够改变这个世界。</p>
<p>所以我认为对他们的简要介绍和罗列，能够折射出当前世界上的重要进步。当然这里的介绍可以说是浅尝辄止。权作一个索引，我们可以对其中感兴趣的人物进行深入了解。</p>
<p>这篇并不是翻译。因为实际开始翻译的时候我发现原文文字实在太不流畅，若按字面意思翻译不但很多词汇中文里没有对应的意思，而且逻辑的脉络也不是很清楚。曾想干脆放弃，但是觉得了解一下他们确实有一些意义，所以只好折中一下，将每人的简短介绍分为经历，理念，与项目三个要点总结。希望能够不失原文本意。</p>
<p>原文地址: <a href="http://images.businessweek.com/ss/10/02/0201_worlds_most_influential_designers/index.htm">http://images.businessweek.com/ss/10/02/0201_worlds_most_influential_designers/index.htm</a><br />
<strong>转载请注作者署名:coolnalu。谢谢!</strong><br />
<span id="more-128"></span></p>
<h2>1. Paola Antonelli</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/002_paola_antonelli.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/002_paola_antonelli.jpg" alt="" title="002_paola_antonelli" width="499" height="291" class="alignnone size-full wp-image-140" /></a></p>
<p>经历 纽约现代艺术馆,建筑与设计馆资深馆长, 2006年获美国国家设计奖 &#8211; “Design Mind”奖。<br />
理念 坚持推广(公众)对设计的理解，直到设计对世界的正面影响被全部接受并利用为止。<br />
项目 曾担任数个热门展出的监督。这些展出无一不拓展了人们对“设计”的日常定义。</p>
<h2>2. Janine Benyus</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/003_janine_benyus.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/003_janine_benyus.jpg" alt="" title="003_janine_benyus" width="499" height="291" class="alignnone size-full wp-image-141" /></a></p>
<p>经历 Biomimicry Guild &#8211; 创新咨询顾问公司创始人，仿生学先驱之一<br />
理念 帮助公司和机构开发基于自然界中“最佳方法”的产品和策略<br />
项目 曾向通用电气，通用磨坊(译注:哈根达斯背后的老板),和惠普等公司的高管们传述如何让公司通过仿生学受益</p>
<h2>3. Tim Brown</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/004_tim_brown.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/004_tim_brown.jpg" alt="" title="004_tim_brown" width="499" height="291" class="alignnone size-full wp-image-142" /></a></p>
<p>经历 IDEO的首席执行官兼主席<br />
理念 Design Thinking<br />
项目 从宏观的高度向微软，百事，宝洁等大型跨国企业推广设计的战略意义。在达沃斯等世界经济论坛宣传设计给商业和世界带来的变革。</p>
<h2>4. Bill Buxton</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/005_bill_buxton.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/005_bill_buxton.jpg" alt="" title="005_bill_buxton" width="499" height="291" class="alignnone size-full wp-image-143" /></a><br />
经历 作曲家和演出者出身，曾在Xerorx Parc和Alias/Wavefront供职，时任微软的首席研究员之一，Bloomberg/BusinessWeek的常任专栏作家<br />
理念 将人的价值，文化和技术融于作品里</p>
<h2>5.Valerie Casey</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/006_valerie_casey.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/006_valerie_casey.jpg" alt="" title="006_valerie_casey" width="499" height="291" class="alignnone size-full wp-image-144" /></a><br />
经历 Designer Accord创始人，曾在Pentagram，Frog Design，和IDEO等公司供职<br />
理念 在设计中融入可持续性理念<br />
项目 向NakedPizza等公司建议可持续性设计</p>
<h2>6. Ivan Chermayeff and Tom Geismar</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/007_chermayeff_geismar.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/007_chermayeff_geismar.jpg" alt="" title="007_chermayeff_geismar" width="499" height="291" class="alignnone size-full wp-image-145" /></a><br />
经历 Chermayeff &#038; Geismar设计代理创始人<br />
项目 从1957年开始塑造了世界上不少具有标志性的品牌，例如Mobil的标志，和Pan Am 航空身份设计，最新的客户包括Armani Exchange和国会图书馆</p>
<h2>7. Hilary Cottam</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/008_hilary_cottam.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/008_hilary_cottam.jpg" alt="" title="008_hilary_cottam" width="499" height="291" class="alignnone size-full wp-image-146" /></a><br />
经历 现供职与Participle，曾任世界银行城市贫困专家，社会学博士，获伦敦设计博物馆2005年度设计师<br />
理念 研究方向为设计的情感，社会，和经济效应<br />
项目 通过设计解决一些社会问题-老年化和教育；公共服务设计与创新</p>
<h2>8. Choi Gee Sung</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/009_choi_gee_sung.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/009_choi_gee_sung.jpg" alt="" title="009_choi_gee_sung" width="499" height="291" class="alignnone size-full wp-image-147" /></a><br />
经历 三星集团最新CEO，自1977年加入三星设计与市场部参与扩大移动电话，电视，电子媒体的市场份额，将三星推到了电视厂商的第一位。</p>
<h2>9. Henrik Fisker</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/010_henrik_fisker.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/010_henrik_fisker.jpg" alt="" title="010_henrik_fisker" width="499" height="291" class="alignnone size-full wp-image-148" /></a><br />
经历 Fisker Coachbuild创始人<br />
理念 致力于高端设计与工程的结合<br />
项目 设计了2008 BMW Z8 车型；于2009年从奥巴马政府贷款到五亿美元左右开发混合能源车辆；最近又宣布获得了一亿多的私人股权基金开发零售$87,900美元的Fisker Karma车型</p>
<h2>10. Naoto Fukasawa</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/011_naoto_fukasawa.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/011_naoto_fukasawa.jpg" alt="" title="011_naoto_fukasawa" width="499" height="291" class="alignnone size-full wp-image-149" /></a><br />
经历 Naoto Fukasawa设计公司创始人<br />
理念 设计应该源于环境和自然</p>
<h2>11. Bob Greenberg</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/012_bob_greenberg.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/012_bob_greenberg.jpg" alt="" title="012_bob_greenberg" width="500" height="292" class="alignnone size-full wp-image-150" /></a><br />
经历 R/GA广告和市场推广代理，此前曾为电影Alien，Predator，和Seven等制作特效动画<br />
理念 为数码设计中带来创新<br />
项目 客户包括耐克，惠普，沃尔玛等</p>
<h2>12. Zaha Hadid</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/013_zaha_hadid.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/013_zaha_hadid.jpg" alt="" title="013_zaha_hadid" width="499" height="291" class="alignnone size-full wp-image-151" /></a><br />
经历 创立了与自己同名的工作室，第一个获得Pritzker建筑奖的女性<br />
项目 位于德国的一个充满锐角的水泥消防站，位于辛辛那提的Rosenthal现代艺术中心，以及罗马的国立XXI实际艺术馆</p>
<h2>13. Jonathan Ive</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/014_jonathan_ive.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/014_jonathan_ive.jpg" alt="" title="014_jonathan_ive" width="499" height="291" class="alignnone size-full wp-image-152" /></a><br />
经历 苹果公司资深工业设计副主席<br />
理念 将“更好”摆在“新颖”之前，追求易用易理解的友好设计<br />
项目 监制了iMac，iPod，iPhone，以及最新的iPad。</p>
<h2>14. Larry Keeley</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/015_larry_keeley.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/015_larry_keeley.jpg" alt="" title="015_larry_keeley" width="500" height="292" class="alignnone size-full wp-image-157" /></a></p>
<p>经历 Doblin咨询主席和创始人之一<br />
项目 帮助公司开发能够增加创新回报几率的系统</p>
<h2>15. Rem Koolhaas</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/016_rem_koolhaas.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/016_rem_koolhaas.jpg" alt="" title="016_rem_koolhaas" width="500" height="292" class="alignnone size-full wp-image-158" /></a><br />
经历 荷兰建筑师，哈佛教授，大都会建筑创始人之一<br />
项目 CCTV新楼，西雅图中心图书馆</p>
<h2>16. Qingyun Ma</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/017_quingyun_ma.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/017_quingyun_ma.jpg" alt="" title="017_quingyun_ma" width="500" height="292" class="alignnone size-full wp-image-159" /></a><br />
经历 MADA s.p.a.m的创始人，南加大学建筑学院院长<br />
项目 西安电视建筑群，2008奥运规划专家</p>
<h2>17. Roger Martin</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/018_roger_martin.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/018_roger_martin.jpg" alt="" title="018_roger_martin" width="500" height="292" class="alignnone size-full wp-image-160" /></a><br />
经历 多伦多大学Rotman管理学院院长，Thomson Reuters和Research in Motion董事会成员。曾在Monitor策略咨询公司供职。<br />
理念 综合思维<br />
项目 呼吁重塑MBA课程</p>
<h2>18. Shigeru Miyamoto</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/019_shigeru_miyamoto.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/019_shigeru_miyamoto.jpg" alt="" title="019_shigeru_miyamoto" width="500" height="292" class="alignnone size-full wp-image-161" /></a><br />
经历 任天堂游戏设计部负责人, 被称为现代游戏之父<br />
理念 做别人所不能及<br />
项目 超级玛丽，超级金刚，塞尔达传说，DS, Wii, Wii Fit</p>
<h2>19. Bill Moggridge</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/020_bill_moggridge.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/020_bill_moggridge.jpg" alt="" title="020_bill_moggridge" width="500" height="292" class="alignnone size-full wp-image-162" /></a><br />
经历 IDEO创始人之一，史密森学会的古柏海卫特国立设计博物馆总监<br />
理念 推广设计在生活中每个方面的应用，不仅限于科技<br />
项目 曾设计世界上第一台笔记本电脑 &#8211; Grid Compass</p>
<h2>20. Jakob Nielsen</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/021_jakob_nielsen.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/021_jakob_nielsen.jpg" alt="" title="021_jakob_nielsen" width="500" height="292" class="alignnone size-full wp-image-163" /></a><br />
经历 Nielson Norman Group创始人之一，曾于Sun Microsystem，IBM，Bell Communication Research供职。哥本哈根丹麦科技大学HCI博士<br />
项目 网页可用性，可用性工程，移动界面可用性</p>
<h2>21. Don Norman</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/022_don_norman.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/022_don_norman.jpg" alt="" title="022_don_norman" width="500" height="292" class="alignnone size-full wp-image-164" /></a><br />
经历 Nielson Norman Group创始人之一，曾是苹果副主席，西北大学教授<br />
理念 他最新的观念认为想拥有颠覆性的创新，调研基本没用<br />
项目 著有Design of Everyday Things，Design of Future Things, Emotional Design</p>
<h2>22. Dieter Rams</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/023_dieter_rams.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/023_dieter_rams.jpg" alt="" title="023_dieter_rams" width="500" height="292" class="alignnone size-full wp-image-165" /></a><br />
经历 40年的工业设计经历<br />
理念 在1980年曾认为商业设计变成了无休止的制造废物，于是写了10条优秀设计法则，影响深远</p>
<h2>23. Burt Rutan</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/024_burt_rutan.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/024_burt_rutan.jpg" alt="" title="024_burt_rutan" width="500" height="292" class="alignnone size-full wp-image-166" /></a><br />
经历 Rutan飞行器工厂创始人<br />
项目 曾设计轻型的，可在家里自行组装的飞行器，最近又设计了世界上第一批商用航天器，2004年自制的SpaceShitOne号载人航天器在两周内两次达到了100公里的高度。</p>
<h2>24. Cameron Sinclair</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/025_cameron_sinclair.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/025_cameron_sinclair.jpg" alt="" title="025_cameron_sinclair" width="500" height="292" class="alignnone size-full wp-image-167" /></a><br />
经历 人道主义建筑组织创始人<br />
理念 设计是终极的可重复利用资源<br />
项目 最近的成果包括在海蒂搭设迅捷避难所以及长期重建规划</p>
<h2>25. Amy Smith</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/026_amy_smith.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/026_amy_smith.jpg" alt="" title="026_amy_smith" width="500" height="292" class="alignnone size-full wp-image-168" /></a><br />
经历 麻省理工教授，幼时曾在印度见过许多贫困的人群，曾获MacArthur“天才”奖金<br />
理念 就地取材的低造价，低科技解决方案可帮助发展中国家解决严重问题<br />
项目 发明包括锤磨机和无需用电的恒温箱</p>
<h2>26. Philippe Starck</h2>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/02/027_philippe_starck.jpg" rel="lightbox[128]"><img src="http://www.uxd2.com/wp-content/uploads/2010/02/027_philippe_starck.jpg" alt="" title="027_philippe_starck" width="500" height="292" class="alignnone size-full wp-image-169" /></a><br />
经历 产品设计师，曾主持英国一个与设计相关的实事节目；<br />
项目 设计从凳子，到榨汁机，到航天器的内饰；长期与旅馆大亨们合作向全球的旅行者推出“远离家的家”的住宿概念。</p>
<h2>后记</h2>
<p>说实话这篇文章除了Jakob Nielson和Don Norman以外不算与UX紧密相关。在选材上应该更谨慎才对。但是翻译到一半放弃又有些可惜。就当是扩展阅读吧。<br />
希望看到更多操作派文章的同学们，我下一篇保证写个技术性的博客。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/02/26%e5%90%8d%e5%bd%93%e4%b8%96%e6%9c%80%e6%9c%89%e5%bd%b1%e5%93%8d%e5%8a%9b%e7%9a%84%e8%ae%be%e8%ae%a1%e5%b8%88/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>2010/01/20 到 2010/02/01 之间保存的网页</title>
		<link>http://www.uxd2.com/2010/02/20100120-%e5%88%b0-20100201-%e4%b9%8b%e9%97%b4%e4%bf%9d%e5%ad%98%e7%9a%84%e7%bd%91%e9%a1%b5/</link>
		<comments>http://www.uxd2.com/2010/02/20100120-%e5%88%b0-20100201-%e4%b9%8b%e9%97%b4%e4%bf%9d%e5%ad%98%e7%9a%84%e7%bd%91%e9%a1%b5/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 19:05:07 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Bookmarks (书签)]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=102</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://www.boxesandarrows.com/view/bringing-user?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+BoxesAndArrows_Stories+(Boxes+and+Arrows)&amp;utm_content=Google+Reader">Bringing User Centered Design to the Agile Environment &#8211; Boxes and Arrows: The design behind the design</a> &#8211; </li>
<li><a href="http://www.webdesignerdepot.com/2009/05/the-evolution-of-cell-phone-design-between-1983-2009/">The Evolution of Cell Phone Design Between 1983-2009 | Webdesigner Depot</a> &#8211; </li>
<li><a href="http://ignorethecode.net/blog/">ignore the code</a> &#8211; </li>
<li><a href="http://uxmag.com/design/change-blindness?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+UXM+(UX+Magazine)&amp;utm_content=Google+Reader">Change Blindness | UX Magazine</a> &#8211; </li>
<li><a href="http://uxmag.com/design/apple039s-proposed-multi-touch-ui-system?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+UXM+(UX+Magazine)&amp;utm_content=Google+Reader">Apple&#8217;s Proposed Multi-Touch UI System | UX Magazine</a> &#8211; </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/02/20100120-%e5%88%b0-20100201-%e4%b9%8b%e9%97%b4%e4%bf%9d%e5%ad%98%e7%9a%84%e7%bd%91%e9%a1%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>苹果的伟大</title>
		<link>http://www.uxd2.com/2010/01/%e8%8b%b9%e6%9e%9c%e7%9a%84%e4%bc%9f%e5%a4%a7/</link>
		<comments>http://www.uxd2.com/2010/01/%e8%8b%b9%e6%9e%9c%e7%9a%84%e4%bc%9f%e5%a4%a7/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 06:00:57 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Design (设计)]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[企业]]></category>
		<category><![CDATA[苹果]]></category>
		<category><![CDATA[设计]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=122</guid>
		<description><![CDATA[今天苹果发布了iPad，很多人不喜欢这个名字,，更多人觉得就是一个大的iPod Touch而已,，甚至失望。但这种反应，在我看来，却正证明了苹果的伟大之处。 本来这周忙得要死，而且读者反映想多看一些具体的设计与应用的内容，实在不应该也没时间就时事评论。但是，还是忍不住想说两句。望见谅。 我认为，苹果最伟大的地方，不是它的产品，而是几乎每一个产品都能颠覆一个消费市场的秩序，推动整个产业的高速发展。我一直觉得，如果没有苹果，21世纪不知道什么时候才会真的到来。从最早的Mac开始，虽然乔布斯经过他人生的滑铁卢，但是除去这一次多多少少人生必经的挫折以外，他所做出的每个产品都好像狠狠扇了同行一巴掌: 你们所谓的创新总是比苹果落后三年。这让我不得不质疑所谓摩尔定律到底是自然规律还是人为制造的假象哄抬价格。很多电子产品商人总是试图故意放慢发展速度，尽量榨取消费者的钱。每次苹果的新产品则让我感觉苹果的办公室里时间好像比办公室外的时间快一倍。 &#8220;&#8230;他所做出的每个产品都好像狠狠扇了同行一巴掌&#8230;&#8221; Mac以后，个人电脑大行其道，虽然微软在90年代无人能敌，但是不得不说是苹果让个人电脑风靡于世。当苹果重回到乔布斯的掌握以后，首先颠覆了MP3市场。从MP3出现在市场上原本大概5，6年间没有任何实质的进步。调节音量或是歌曲进退都是按钮，按钮，和按钮。当iPod上市时，惊讶与简单易用之余，必然要顺便鄙视一下以往用过的MP3的厂家有多么平庸，花哨的设计和萤光代替不了创新，不肯下功夫的设计必然会被淘汰。但这个时候，你可以说iPod的成功，是个偶然。 随后，苹果重整Mac的士气，接近PC的价格和针对学校的推广在短短几年内将Mac在校园内的占有率提高了几倍。学生可以说是Mac的主力人群，他们爱新鲜，爱虚荣，抓住了这一部分市场，可以说是苹果&#8221;反击&#8221;战略里最重要的一步。虽然这场反击晚了接近20年，但最终还是证明了苹果的理想和眼界，比PC要远10年。当Windows每一个版都推出一个比较新的质感的时候，Mac OS版本之间却不怕用户审美疲劳，保持了设计的高度的一致性，反倒给人一种成熟稳定的产品的感觉。从使用上来说，新鲜感大概只能持续几个礼拜，但是对一个系统的熟练操作则要很多个月，保持设计和程序整理的可推测性，牢牢的守住了当前用户。这些细节，相信都是苹果的哲学的一部分。 而后iPhone的出现，则给大家带来了前所未有的惊叹! iPhone的影响极其深远: 先是整个行业争相推出触屏产品，但这样的产品总是显得太苍白。其次是整个行业都开始推出自己的App Store，连Intel都有了。跟风者只会让我看到他们的贪婪与懦弱。如果有公司坚决走自己的路，不复制，至少还能得到尊重。最后，iPhone上能玩的游戏太多，于是顺便拿下了便携游戏市场。Gameboy还是PSP，真正的骨灰玩家并不是那么多。很多人只是娱乐性的玩儿游戏。既然iPhone可以玩，没有必要再买专门的PSP了。到了这里，你不能再说苹果的成功有任何偶然性了。苹果敢于使用新技术，即使新技术不是很稳定，当别人开始用的时候，苹果一定已经用的更好了。我想这必然也是他们的秘诀之一。 &#8220;&#8230;我们被苹果惯坏了&#8230;&#8221; 到了iPad。我们不激动了。我们不欣喜了。我想，我们不激动不欣喜的原因不全是因为iPad的设计和定位不上不下。我们的标准经历了这么多年，提高了。我们被苹果惯坏了。所以苹果成功了，它不光推动了整个行业的发展，也提高了人们对设计的审美和要求。未来我们会用更高的标准审视苹果与电子产品。]]></description>
			<content:encoded><![CDATA[<p>今天苹果发布了iPad，很多人不喜欢这个名字,，更多人觉得就是一个大的iPod Touch而已,，甚至失望。但这种反应，在我看来，却正证明了苹果的伟大之处。<br />
<span id="more-122"></span><br />
本来这周忙得要死，而且读者反映想多看一些具体的设计与应用的内容，实在不应该也没时间就时事评论。但是，还是忍不住想说两句。望见谅。</p>
<p>我认为，苹果最伟大的地方，不是它的产品，而是几乎每一个产品都能颠覆一个消费市场的秩序，推动整个产业的高速发展。我一直觉得，如果没有苹果，21世纪不知道什么时候才会真的到来。从最早的Mac开始，虽然乔布斯经过他人生的滑铁卢，但是除去这一次多多少少人生必经的挫折以外，他所做出的每个产品都好像狠狠扇了同行一巴掌: 你们所谓的创新总是比苹果落后三年。这让我不得不质疑所谓摩尔定律到底是自然规律还是人为制造的假象哄抬价格。很多电子产品商人总是试图故意放慢发展速度，尽量榨取消费者的钱。每次苹果的新产品则让我感觉苹果的办公室里时间好像比办公室外的时间快一倍。</p>
<p class="rightkeyquote">&#8220;&#8230;他所做出的每个产品都好像狠狠扇了同行一巴掌&#8230;&#8221;</p>
<p>Mac以后，个人电脑大行其道，虽然微软在90年代无人能敌，但是不得不说是苹果让个人电脑风靡于世。当苹果重回到乔布斯的掌握以后，首先颠覆了MP3市场。从MP3出现在市场上原本大概5，6年间没有任何实质的进步。调节音量或是歌曲进退都是按钮，按钮，和按钮。当iPod上市时，惊讶与简单易用之余，必然要顺便鄙视一下以往用过的MP3的厂家有多么平庸，花哨的设计和萤光代替不了创新，不肯下功夫的设计必然会被淘汰。但这个时候，你可以说iPod的成功，是个偶然。</p>
<p>随后，苹果重整Mac的士气，接近PC的价格和针对学校的推广在短短几年内将Mac在校园内的占有率提高了几倍。学生可以说是Mac的主力人群，他们爱新鲜，爱虚荣，抓住了这一部分市场，可以说是苹果&#8221;反击&#8221;战略里最重要的一步。虽然这场反击晚了接近20年，但最终还是证明了苹果的理想和眼界，比PC要远10年。当Windows每一个版都推出一个比较新的质感的时候，Mac OS版本之间却不怕用户审美疲劳，保持了设计的高度的一致性，反倒给人一种成熟稳定的产品的感觉。从使用上来说，新鲜感大概只能持续几个礼拜，但是对一个系统的熟练操作则要很多个月，保持设计和程序整理的可推测性，牢牢的守住了当前用户。这些细节，相信都是苹果的哲学的一部分。</p>
<p>而后iPhone的出现，则给大家带来了前所未有的惊叹! iPhone的影响极其深远: 先是整个行业争相推出触屏产品，但这样的产品总是显得太苍白。其次是整个行业都开始推出自己的App Store，连Intel都有了。跟风者只会让我看到他们的贪婪与懦弱。如果有公司坚决走自己的路，不复制，至少还能得到尊重。最后，iPhone上能玩的游戏太多，于是顺便拿下了便携游戏市场。Gameboy还是PSP，真正的骨灰玩家并不是那么多。很多人只是娱乐性的玩儿游戏。既然iPhone可以玩，没有必要再买专门的PSP了。到了这里，你不能再说苹果的成功有任何偶然性了。苹果敢于使用新技术，即使新技术不是很稳定，当别人开始用的时候，苹果一定已经用的更好了。我想这必然也是他们的秘诀之一。</p>
<p class="leftkeyquote">&#8220;&#8230;我们被苹果惯坏了&#8230;&#8221;</p>
<p>到了iPad。我们不激动了。我们不欣喜了。我想，我们不激动不欣喜的原因不全是因为iPad的设计和定位不上不下。我们的标准经历了这么多年，提高了。我们被苹果惯坏了。所以苹果成功了，它不光推动了整个行业的发展，也提高了人们对设计的审美和要求。未来我们会用更高的标准审视苹果与电子产品。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/01/%e8%8b%b9%e6%9e%9c%e7%9a%84%e4%bc%9f%e5%a4%a7/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>变化盲点 &#8211; 用格式塔理论解释</title>
		<link>http://www.uxd2.com/2010/01/%e5%8f%98%e5%8c%96%e7%9b%b2%e7%82%b9-%e7%94%a8%e6%a0%bc%e5%bc%8f%e5%a1%94%e7%90%86%e8%ae%ba%e8%a7%a3%e9%87%8a/</link>
		<comments>http://www.uxd2.com/2010/01/%e5%8f%98%e5%8c%96%e7%9b%b2%e7%82%b9-%e7%94%a8%e6%a0%bc%e5%bc%8f%e5%a1%94%e7%90%86%e8%ae%ba%e8%a7%a3%e9%87%8a/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 05:00:14 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Experience (体验)]]></category>
		<category><![CDATA[Featured (推荐)]]></category>
		<category><![CDATA[experiment]]></category>
		<category><![CDATA[gestalt 格式塔 user experience]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=104</guid>
		<description><![CDATA[今天看到一个哈佛做的实验，变化盲点实验(Change Blindness)，有关UX，觉得很有趣。 实验设计 1. 实验设置 首先，一群可怜的志愿者被通知去参加一个实验，于是他们被安排一个一个进了某个房间，有一个接待台。上面贴着一个纸条，写着大大的，“实验中”。 实验的道具是这两个小伙。他们无论从五官上，发型上，衣服上，声音上，甚至气质上都颇有不同。 2. 实验程序 当一个志愿者被安排进来的时候，穿米色衣服的小伙子先站在柜台上接待 &#8211; 递给志愿者一个自愿表, 一个常见的程序。 蓝色衣服的小伙子呢? 他在这期间一直蹲在柜台下面。当志愿者终于填好表之后，签了名字之后，自愿表生效了! 之后发生什么恐怖的事都不负责了! 米色衣服的小伙子将表拿过来，俯身下来，将表收起来。这时候蓝色衣服的小伙子就闪亮登场了! 他趴到米色小伙站的位置，起身，拿出另外一份两页材料，告诉志愿者拿到走廊的里侧去。 当志愿者进去房间之后，里面的人告知他们实验已经结束。然后录下他们对刚才的体验的回顾，在他们说了一些他们的观察以后，再确认问一下他们是否注意到任何异常。 3. 实验结果 75%的实验者没有发现接待员换了。根据视频上来看，应该参与者有8人左右。 而什么令另外25%的人能够察觉则还不是很确定。下面这张截图里的女性一下就发现了问题，诡异又得意的笑了起来。 4. 实验观察 有的参与者似乎感觉到有异样，但又不是很确定 再复述当时情景的时候他们注意到了很多当时的细节，但是却没发现最重要的问题 什么是格式塔理论? 格式塔 (Gestalt) 20世纪初被提出的一个心理学原理。我最近才从一本摄影书里得知一个大概。作为训练，我尝试在这里运用格式塔理论的几项法则来从一个角度解释这个实验的结果。 首先我先罗列一下这些法则: (译自英文Wikipedia) 闭合法则 &#8211; 意识会为了达到某种规律而经历一些并非真实感受到的体验。 相似法则 &#8211; 意识会将相似的元素整合成集合或是整体, 根据形状, 颜色, 大小, 亮度等。 接近法则 &#8211; 空间上或时间上接近的元素会导致意识倾向于将他们整合成集合或整体。 对称法则 &#8211; 对称的多个图像会被作为一个整体被意识接受，即使他们之间有一定距离。 连续法则 &#8211; 意识会根据视觉上的，听觉上的，或是位移的规律延伸。 同向法则 &#8211; 向同一个方向移动的元素会被当作一个整体。 [...]]]></description>
			<content:encoded><![CDATA[<p>今天看到一个哈佛做的实验，<a href="http://uxmag.com/design/change-blindness?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+UXM+%28UX+Magazine%29&amp;utm_content=Google+Reader">变化盲点实验(Change Blindness)</a>，有关UX，觉得很有趣。<br />
<span id="more-104"></span></p>
<h1>实验设计</h1>
<h2>1. 实验设置</h2>
<p>首先，一群可怜的志愿者被通知去参加一个实验，于是他们被安排一个一个进了某个房间，有一个接待台。上面贴着一个纸条，写着大大的，“实验中”。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/experimentsign.jpg" rel="lightbox[104]"><img class="alignnone size-full wp-image-108" title="experimentsign" src="http://www.uxd2.com/wp-content/uploads/2010/01/experimentsign.jpg" alt="" width="500" height="206" /></a></p>
<p>实验的道具是这两个小伙。他们无论从五官上，发型上，衣服上，声音上，甚至气质上都颇有不同。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/twopeople.jpg" rel="lightbox[104]"><img class="alignnone size-full wp-image-112" title="twopeople" src="http://www.uxd2.com/wp-content/uploads/2010/01/twopeople.jpg" alt="" width="500" height="206" /></a></p>
<h2>2. 实验程序</h2>
<p>当一个志愿者被安排进来的时候，穿米色衣服的小伙子先站在柜台上接待 &#8211; 递给志愿者一个自愿表, 一个常见的程序。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/takeform.jpg" rel="lightbox[104]"><img class="alignnone size-full wp-image-111" title="takeform" src="http://www.uxd2.com/wp-content/uploads/2010/01/takeform.jpg" alt="" width="500" height="250" /></a></p>
<p>蓝色衣服的小伙子呢? 他在这期间一直蹲在柜台下面。当志愿者终于填好表之后，签了名字之后，自愿表生效了! 之后发生什么恐怖的事都不负责了! 米色衣服的小伙子将表拿过来，俯身下来，将表收起来。这时候蓝色衣服的小伙子就闪亮登场了!</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/changeperson.jpg" rel="lightbox[104]"><img class="alignnone size-full wp-image-106" title="changeperson" src="http://www.uxd2.com/wp-content/uploads/2010/01/changeperson.jpg" alt="" width="500" height="250" /></a></p>
<p>他趴到米色小伙站的位置，起身，拿出另外一份两页材料，告诉志愿者拿到走廊的里侧去。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/giveanothersheets.jpg" rel="lightbox[104]"><img class="alignnone size-full wp-image-109" title="giveanothersheets" src="http://www.uxd2.com/wp-content/uploads/2010/01/giveanothersheets.jpg" alt="" width="500" height="250" /></a></p>
<p>当志愿者进去房间之后，里面的人告知他们实验已经结束。然后录下他们对刚才的体验的回顾，在他们说了一些他们的观察以后，再确认问一下他们是否注意到任何异常。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/interview.jpg" rel="lightbox[104]"><img class="alignnone size-full wp-image-110" title="interview" src="http://www.uxd2.com/wp-content/uploads/2010/01/interview.jpg" alt="" width="500" height="250" /></a></p>
<h2>3. 实验结果</h2>
<p>75%的实验者没有发现接待员换了。根据视频上来看，应该参与者有8人左右。<br />
而什么令另外25%的人能够察觉则还不是很确定。下面这张截图里的女性一下就发现了问题，诡异又得意的笑了起来。</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/discovered.jpg" rel="lightbox[104]"><img class="alignnone size-full wp-image-107" title="discovered" src="http://www.uxd2.com/wp-content/uploads/2010/01/discovered.jpg" alt="" width="500" height="250" /></a></p>
<h2>4. 实验观察</h2>
<ul>
<li>有的参与者似乎感觉到有异样，但又不是很确定</li>
<li>再复述当时情景的时候他们注意到了很多当时的细节，但是却没发现最重要的问题</li>
</ul>
<h1>什么是格式塔理论?</h1>
<p><a href="http://baike.baidu.com/view/85631.html?wtp=tt">格式塔 (Gestalt)</a> 20世纪初被提出的一个心理学原理。我最近才从一本摄影书里得知一个大概。作为训练，我尝试在这里运用格式塔理论的几项法则来从一个角度解释这个实验的结果。</p>
<p>首先我先罗列一下这些法则: (译自英文Wikipedia)</p>
<ul>
<li>闭合法则 &#8211; 意识会为了达到某种规律而经历一些并非真实感受到的体验。</li>
<li>相似法则 &#8211; 意识会将相似的元素整合成集合或是整体, 根据形状, 颜色, 大小, 亮度等。</li>
<li>接近法则 &#8211; 空间上或时间上接近的元素会导致意识倾向于将他们整合成集合或整体。</li>
<li>对称法则 &#8211; 对称的多个图像会被作为一个整体被意识接受，即使他们之间有一定距离。</li>
<li>连续法则 &#8211; 意识会根据视觉上的，听觉上的，或是位移的规律延伸。</li>
<li>同向法则 &#8211; 向同一个方向移动的元素会被当作一个整体。</li>
</ul>
<p>具体的法则我就先不多说了，免得贻笑大方。百度上这个文章<a href="http://baike.baidu.com/view/73571.htm">格式塔心理学</a>应该是个不错的概括。</p>
<h1>用格式塔法则解释实验结果</h1>
<h2>闭合法则</h2>
<p>其中几个实验者在第二个人站起来以后，似乎察觉到了异样，但是好像没能清楚的说出是什么地方有问题。我认为他们应该在下意识下发现了很奇怪的变化，男人的声音，眼神，衬衫等等。但是在不是很确定的情况下，大脑的闭合作用便帮助他们努力的让眼前的情景变得与他们以往的体验一样 &#8211; 方法可能是假设自己眼花了，或是没记住，或是别的 &#8211; 总之是保持情景的合理性。想想看，如果突然你遇到某种情况一个男人突然悄悄的变脸了，至少也要后背发凉一下吧。个人的经历不同，对这种突然的变化应该会有不同程度的压抑。压抑越强烈，反抗也就越强烈, 越希望眼前的情景都是合理的。</p>
<h2>相似法则</h2>
<p>这两个男人虽然并排看差异很大，但是在实验中你一次只会看到一个人。对我们熟悉的人或事物，我们可能会了解他们的没个细节，但是对于一个初次见面的人，则未必会特别了解他的每一个特征。换了人以后，还是一个男人，头发长度比较接近，声音的高低差距也不是太大，衬衫的颜色都是比较淡的纯颜色，没有纹理，高度差似乎也在5cm以内。从这个角度说，他们俩的相似度是很高的。</p>
<h2>连续法则</h2>
<p>第一个男人弯腰以后，消失在台子下面，这时候从视觉上必然是一个断点。被实验者看不到接待员了。当第二个男人站起来的时候，那些没看出问题的人则自然的认为这是第一个人蹲下有站起来了。包括那些发现的问题的人，也似乎在脑袋里迟疑了一下才感觉的异样。第一个人蹲下的时候速度故意放慢，给足时间用来在桌子下移动位置，然后再以相似的速度站起来。这时候人脑就会形成一个自然的运动轨迹，因而认为两个人是一个人。</p>
<h1>其他相关的理论</h1>
<p>当然还有很多别的心理学理论可以用来解释这个现象。譬如，由于实验者在未被告知的情况下，努力的填表，所以注意力都集中在表上，却不知道刚签了字实验就开始了。人的注意力是有限的，对某个事物的注意力多了，必然就会忽略一些别的事物。有一个实验者甚至都没怎么抬头看接待员，自然也没办法看出有什么变化。</p>
<h1>对UX有什么意义</h1>
<p>首先，我们可以看出很多时候用户并不很擅长发现细节和细节的变化。这是否意味着设计师对每分每毫的精确的追求有时候是自己的偏执呢？或者从积极的方面来看，如何能让用户发现我们的苦心设计呢？从另一方面来说，当我们需要更新界面的时候，也许会遇到有的用户的反对，但细微的变化也许并不会被大部分发现。这样是否能加速流程呢？</p>
<p>其次，在人命关天的的用户界面中，必须要有能够打断用户的其他注意力的功能，能够在危急的时候及时制止问题，这是人脑的局限。应该从设计上进行辅助，而不是单纯靠人本身的记忆或者是条件反射。</p>
<p>另外，就设计师本身而言，也有这种缺陷。当你专注于设计一个功能的时候，往往会忽略整体功能的变化。有的时候也许变成了一个很熟知的问题，但你却重新发明了轮子。</p>
<h2>你觉得呢？</h2>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/01/%e5%8f%98%e5%8c%96%e7%9b%b2%e7%82%b9-%e7%94%a8%e6%a0%bc%e5%bc%8f%e5%a1%94%e7%90%86%e8%ae%ba%e8%a7%a3%e9%87%8a/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>2010/01/12 到 2010/01/18 之间保存的网页</title>
		<link>http://www.uxd2.com/2010/01/20100112-%e5%88%b0-20100118-%e4%b9%8b%e9%97%b4%e4%bf%9d%e5%ad%98%e7%9a%84%e7%bd%91%e9%a1%b5/</link>
		<comments>http://www.uxd2.com/2010/01/20100112-%e5%88%b0-20100118-%e4%b9%8b%e9%97%b4%e4%bf%9d%e5%ad%98%e7%9a%84%e7%bd%91%e9%a1%b5/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 17:09:29 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Bookmarks (书签)]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=57</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://academicearth.org/courses/human-computer-interaction-seminar">Human-Computer Interaction Seminar | Stanford Video Course</a> &#8211; </li>
<li><a href="http://api.jquery.com/">jQuery API</a> &#8211; </li>
<li><a href="http://badusability.com/">Bad Usability Calendar</a> &#8211; </li>
<li><a href="http://www.uxmatters.com/mt/archives/2010/01/specifying-behavior-with-an-example-menu-behavior-specification.php">Specifying Behavior: With an Example Menu Behavior Specification :: UXmatters</a> &#8211; </li>
<li><a href="http://cdc.tencent.com/?p=2141">Tencent CDC Blog &raquo; 当视觉设计师遇上产品经理、开发工程师&hellip;</a> &#8211; </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/01/20100112-%e5%88%b0-20100118-%e4%b9%8b%e9%97%b4%e4%bf%9d%e5%ad%98%e7%9a%84%e7%bd%91%e9%a1%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>翻译: jQuery1.4官方文档</title>
		<link>http://www.uxd2.com/2010/01/%e7%bf%bb%e8%af%91-jquery1-4%e5%ae%98%e6%96%b9%e6%96%87%e6%a1%a3/</link>
		<comments>http://www.uxd2.com/2010/01/%e7%bf%bb%e8%af%91-jquery1-4%e5%ae%98%e6%96%b9%e6%96%87%e6%a1%a3/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 04:35:13 +0000</pubDate>
		<dc:creator>coolnalu</dc:creator>
				<category><![CDATA[Development (开发)]]></category>
		<category><![CDATA[Featured (推荐)]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[翻译]]></category>

		<guid isPermaLink="false">http://www.uxd2.com/?p=69</guid>
		<description><![CDATA[2010年1月14号, 恰逢jQuery四周年纪念日, jQuery的团队早早便开始了1.4版发布的准备工作, 并以每天一则公告的方式进行庆祝, 活动将持续14天。发布的首日, jQuery的团队首先列出了1.4版中的重大改进。我个人认为这篇文档是这几天以来内容比较充实的一篇文档。所以翻译过来, 以便同僚日后可以参考。时间仓促, 可能有几处不太明确的地方, 或是原文就草草带过, 可能会不大通畅。欢迎讨论或提出意见，以便共同进步。 转载请注原译者署名:coolnalu。谢谢! 原文地址: http://jquery14.com/day-01 .wp_syntax { color: #100; background-color: #f9f9f9; border: 1px solid silver; margin: 0 0 1.5em 0; overflow: auto; } .wp_syntax div{ vertical-align: top; padding: 2px 4px; } .entry h2{ background: #eeeeee; padding: 5px; } jQuery 1.4 发布啦 为了庆祝jQuery的四周岁生日, jQuery的团队荣幸的发布了jQuery Javascript库的最新主要版本! 这个版本包含了大量的编程，测试，和记录文档的工作，我们为此感到很骄傲。 我要以个人的名义感谢 Brandon [...]]]></description>
			<content:encoded><![CDATA[<p>2010年1月14号, 恰逢jQuery四周年纪念日, jQuery的团队早早便开始了1.4版发布的准备工作, 并以每天一则公告的方式进行庆祝, 活动将持续14天。发布的首日, jQuery的团队首先列出了1.4版中的重大改进。我个人认为这篇文档是这几天以来内容比较充实的一篇文档。所以翻译过来, 以便同僚日后可以参考。时间仓促, 可能有几处不太明确的地方, 或是原文就草草带过, 可能会不大通畅。欢迎讨论或提出意见，以便共同进步。<br />
<strong>转载请注原译者署名:coolnalu。谢谢!</strong></p>
<p><span id="more-69"></span><br />
<a href="http://jquery14.com/day-01">原文地址: http://jquery14.com/day-01</a></p>
<style>
.wp_syntax {
  color: #100;
  background-color: #f9f9f9;
  border: 1px solid silver;
  margin: 0 0 1.5em 0;
  overflow: auto;
}
.wp_syntax div{
  vertical-align: top;
  padding: 2px 4px;
}
.entry h2{
  background: #eeeeee;
  padding: 5px;
}
</style>
<h1>jQuery 1.4 发布啦</h1>
<p>为了庆祝jQuery的四周岁生日, jQuery的团队荣幸的发布了jQuery Javascript库的最新主要版本! 这个版本包含了大量的编程，测试，和记录文档的工作，我们为此感到很骄傲。</p>
<p>我要以个人的名义感谢 Brandon Aaron, Ben Alman, Louis-Rémi Babe, Ariel Flesler, Paul Irish, Robert Kati?, Yehuda Katz, Dave Methvin, Justin Meyer, Karl Swedberg, and Aaron Quint。谢谢他们在修复BUG和完成这次发布上所做的工作。</p>
<h2>下载(Downloading)</h2>
<p>按照惯例，我们提供了两份jQuery的拷贝，一份是最小化的(我们现在采用<a href="http://code.google.com/closure/compiler/">Google Closure</a>作为默认的压缩工具了)，一份是未压缩的(供纠错或阅读)。</p>
<ul>
<li><a href="http://code.jquery.com/jquery-1.4.min.js">jQuery压缩</a> (23kb <a href="http://www.julienlecomte.net/blog/2007/08/13/">Gzipped</a>)</li>
<li><a href="http://code.jquery.com/jquery-1.4.js">jQuery常规</a> (154kb)</li>
</ul>
<p>另外，Google也在他们的服务器上<a href="http://code.google.com/apis/ajaxlibs/documentation/index.html">放置了一份jQuery的拷贝</a>。这份拷贝会自动的最小化然后压缩 &#8211; 并且放在Google最快的缓存服务器上。</p>
<ul>
<li><a href="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js">http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js</a></li>
</ul>
<p>你可以在你的站点上直接引用上面的URL，这样就可以享受迅速加载jQuery的性能优势了。</p>
<p>就jQuery1.4来说，我们努力的减少大规模升级中的麻烦 &#8211; 通过保持所有public函数的签名。即使如此，还请通读<a href="#backwards">可能会造成问题的变更列表</a>，这样能够了解哪些变更可能会给你的应用造成问题。</p>
<h1>(功能) Features</h1>
<p>下面的内容概括了jQuery1.4里加入的变更和功能。另外所有的变更都已经在<a href="http://api.jquery.com/category/version/1.4/">jQuery 1.4 的文档</a>里记录了。</p>
<h2>热门方法经过了性能上的大&#8221;检修&#8221;</h2>
<p>不少比较热门的和常用的jQuery方法在1.4里被重写了。(译注:重写了方法的内部，外部调用没有大幅度改变) 我们分析源码的时候发现我们能够获得大幅的性能提升，通过把jQuery和自己比较: 查看内部函数被调用了多少次，然后努力<a href="http://ejohn.org/blog/function-call-profiling/">降低源码的复杂度</a>(译注:计算机算法中的Complexity)</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/01-funccall.jpg" rel="lightbox[69]"><img class="alignnone size-full wp-image-74" title="常用jQuery方法调用频率" src="http://www.uxd2.com/wp-content/uploads/2010/01/01-funccall.jpg" alt="常用jQuery方法调用频率" width="500" height="375" /></a><br />
<small><a title="# of Function Calls for Popular jQuery Methods by John Resig, on Flickr" href="http://www.flickr.com/photos/jeresig/4271691293/">View the cropped chart.</a></small></p>
<p>在1.4版里我们显著的降低了大部分热门jQuery方法的的复杂度。</p>
<h2>更易用的设置函数 (Easy Setter Functions)</h2>
<p>算来已经有一阵了，你们已经可以给<code><a href="http://api.jquery.com/attr">.attr()</a></code>传递一个函数，然后这个函数的结果会被用来赋给相应的HTML属性(attribute)上。这个功能现在被移植到所有的设置函数了: <code><a href="http://api.jquery.com/css">.css()</a></code>, <code><a href="http://api.jquery.com/attr">.attr()</a></code>, <code><a href="http://api.jquery.com/val">.val()</a></code>, <code><a href="http://api.jquery.com/html">.html()</a></code>, <code><a href="http://api.jquery.com/text">.text()</a></code>, <code><a href="http://api.jquery.com/append">.append()</a></code>, <code><a href="http://api.jquery.com/prepend">.prepend()</a></code>,  <code><a href="http://api.jquery.com/before">.before()</a></code>, <code><a href="http://api.jquery.com/after">.after()</a></code>, <code><a href="http://api.jquery.com/replaceWith">.replaceWith()</a></code>, <code><a href="http://api.jquery.com/wrap">.wrap()</a></code>, <code><a href="http://api.jquery.com/wrapInner">.wrapInner()</a></code>, <code><a href="http://api.jquery.com/offset">.offset()</a></code>, <code><a href="http://api.jquery.com/addClass">.addClass()</a></code>, <code><a href="http://api.jquery.com/removeClass">.removeClass()</a></code>, 以及 <code><a href="http://api.jquery.com/toggleClass">.toggleClass()</a></code>.</p>
<p>另外, 对于下面几个方法，当前的值会被作为第2个变量传递给这个函数。<code><a href="http://api.jquery.com/css">.css()</a></code>, <code><a href="http://api.jquery.com/attr">.attr()</a></code>, <code><a href="http://api.jquery.com/val">.val()</a></code>, <code><a href="http://api.jquery.com/html">.html()</a></code>, <code><a href="http://api.jquery.com/text">.text()</a></code>, <code><a href="http://api.jquery.com/append">.append()</a></code>, <code><a href="http://api.jquery.com/prepend">.prepend()</a></code>, <code><a href="http://api.jquery.com/offset">.offset()</a></code>, <code><a href="http://api.jquery.com/addClass">.addClass()</a></code>, <code><a href="http://api.jquery.com/removeClass">.removeClass()</a></code>, 以及 <code><a href="http://api.jquery.com/toggleClass">.toggleClass()</a></code>.</p>
<p>这样代码就可以这样写:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: #006600; font-style: italic;">// 找出所有A标签里的'&amp;'字符，然后用一个span标签包围</span>
$<span style="color: #009900;">(</span><span style="color: #3366cc;">'a'</span><span style="color: #009900;">)</span>.<span style="color: #660066;">html</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span>i<span style="color: #339933;">,</span>html<span style="color: #009900;">)</span><span style="color: #009900;">{</span>
  <span style="color: #000066; font-weight: bold;">return</span> html.<span style="color: #660066;">replace</span><span style="color: #009900;">(</span><span style="color: #009966; font-style: italic;">/&amp;/gi</span><span style="color: #339933;">,</span><span style="color: #3366cc;">'<span class="amp">&amp;</span>'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>

<span style="color: #006600; font-style: italic;">// 给一些链接的title属性加些信息</span>
$<span style="color: #009900;">(</span><span style="color: #3366cc;">'a[target]'</span><span style="color: #009900;">)</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"title"</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span>i<span style="color: #339933;">,</span>title<span style="color: #009900;">)</span><span style="color: #009900;">{</span>
  <span style="color: #000066; font-weight: bold;">return</span> title <span style="color: #339933;">+</span> <span style="color: #3366cc;">" (新窗口打开)"</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<h2>Ajax</h2>
<p><strong>嵌套参数的序列化</strong> (<a href="http://api.jquery.com/jQuery.param/">jQuery.param() 文档</a>, <a href="http://github.com/jquery/jquery/commit/50d78e7658382d2a2f5149cae7a6572f78ce403f">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/67089eedf6f84acd9c16ea2a6dadadf7b13a7c84">Commit 2</a>)</p>
<p>jQuery 1.4在jQuery.param方法里加入了嵌入参数序列化的支持，借用了PHP编程里兴起的，而后又被Ruby on Rails推广开来的方式。<br />
举例来说，<br />
<code>{foo: ["bar", "baz"]}</code> 会被序列化为 “foo[]=bar&amp;foo[]=baz”.</p>
<p>在jQuery 1.3版里, <code>{foo: ["bar", "baz"]}</code> 曾被序列化为 “foo=bar&amp;foo=baz”. 但是，这样做没用办法将只含有一个元素的阵列编码。如果你需要旧的序列化方式，你可以设置传统Ajax设置来进行切换。(使用<code>jQuery.ajaxSettings.traditional</code>进行全局切换，或者根据情况单独切换。</p>
<p>总共有3种方式可以切换到旧的序列化方式:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: #006600; font-style: italic;">// 全局改变序列化方式 (使用旧的)</span>
jQuery.<span style="color: #660066;">ajaxSettings</span>.<span style="color: #660066;">traditional</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>

<span style="color: #006600; font-style: italic;">// 指定情况使用旧的序列化方式</span>
jQuery.<span style="color: #660066;">param</span><span style="color: #009900;">(</span> stuff<span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">true</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>

<span style="color: #006600; font-style: italic;">// 针对一个单独的Ajax请求使用旧的序列化方式</span>
$.<span style="color: #660066;">ajax</span><span style="color: #009900;">(</span><span style="color: #009900;">{</span> data<span style="color: #339933;">:</span> stuff<span style="color: #339933;">,</span> traditional<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">true</span> <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>更多信息参见: <a href="http://api.jquery.com/jQuery.param/">jQuery.param() 文档</a>, <a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/39518945047413f1185682078043e70e0c5c9091">Commit</a>, <a href="http://github.com/jquery/jquery/blob/master/src/ajax.js#L175">Code</a></p>
<p><strong>JSON和脚本类型通过&#8221;content-type&#8221;自动识别。</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax 文档</a>, <a href="http://github.com/jquery/jquery/commit/787f271052220c20787104f0eba6441aedac22ff">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/6861b5d4eb16222ed5ea623af6ce75362b55d1d4">Commit 2</a>)</p>
<p>如果一个Ajax请求的回复的媒体类型是JSON(application/json), dataType默认设为&#8221;json&#8221;(如果dataType没有被指明)。另外，如果回复的媒体类型是Javascript(application/javascript), dataType默认设为&#8221;script&#8221;(同样，如果dataType没有明确指明), 这种情况下，脚本会自动运行。</p>
<p><strong>加入了Etag的支持</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/28ab4d32247943e1ae3409b23fe69303df0bc9eb">Commit</a>)</p>
<p>默认设置下, jQuery会忽略Ajax请求的&#8221;Last-Modified&#8221;页头。这样做是为了忽略浏览器的缓存。设置ifModified:true就可以使jQuery使用可用的缓存。jQuery1.4还会发出&#8221;If-None-Match&#8221;的页头如果你设置了ifModified选项。</p>
<p><strong>严格JSON模式，本地的JSON.parse方法</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/90a87c03b4943d75c24bc5e6246630231d12d933">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/308d6cdad023da190ace2a698ee4815ed8dad9c5">Commit 2</a>, <a href="http://github.com/jquery/jquery/commit/44e6beb10304789044de2c5a58f5bb82e8321636">Commit 3</a>)</p>
<p>jQuery 1.3和以前的版本曾使用Javascript的<code>eval</code>对引入的JSON解析。1.4版则会使用本地的JSON解析器，前提是如果有本地的解析器可用。它也会对引入的JSON进行校验。所以在<a href="http://api.jquery.com/jQuery.getJSON">jQuery.getJSON</a>方法里，或当一个Ajax请求的dataType是&#8221;json&#8221;的时候，jQuery会拒绝不合标准的JSON(例如<code>{foo: "bar"}</code>)。</p>
<p><strong>序列化HTML5的元素</strong> (<a href="http://api.jquery.com/jQuery.param/">jQuery.param() 文档</a>, <a href="http://github.com/jquery/jquery/commit/b31b9bd756a1489c3b1b856ed8b624c55da9e02f">Commit</a>)</p>
<p>新的<a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#attr-input-type-keywords">HTML5输入方法</a> (比如&#8217;datetime&#8217;和&#8217;range&#8217;)在序列化<code><a href="http://api.jquery.com/serialize">.serialize()</a></code>一个表单的时候会被包括在内。</p>
<p><strong>Ajax请求的环境</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/183f37e4b4128af7ba096ac40046768b84b6d66e">Commit</a>)</p>
<p>你可以附加一个&#8221;环境&#8221;到Ajax请求上，所有的回调函数里都会拥有同样的&#8221;环境&#8221;设置(这样可以简化你的代码，尽可能避免使用闭合,或是其他对象)。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">jQuery.<span style="color: #660066;">ajax</span><span style="color: #009900;">(</span><span style="color: #009900;">{</span>
    url<span style="color: #339933;">:</span> <span style="color: #3366cc;">"test.html"</span><span style="color: #339933;">,</span>
    context<span style="color: #339933;">:</span> document.<span style="color: #660066;">body</span><span style="color: #339933;">,</span>
    success<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
        jQuery<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"done"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>请求成功回调函数的第三个参数会被设为原始的XHR对象</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/c2101245c07afdb831b0c79869c7263420407b67">Commit</a>)</p>
<p>所有的Ajax请求的成功回调函数现在都会收到原始的XMLHttpRequest对象，作为第三个参数。之前这个XHR对象只能通过<code>$.ajax</code>一类方法的返回值来获取。</p>
<p><strong>明确设置&#8221;Content-Type&#8221;</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax() 文档</a>, <a href="http://github.com/jquery/jquery/commit/25b0ba9f9612583033b902a0e40345463a3a71d0">Commit</a>)</p>
<p>在1.3版，如果没有实际数据发送，<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax</a>的contentType会被忽略。1.4版里，contentType将总是和请求一同发送。这修复了某些后台凭靠&#8221;Content-Type&#8221;页头判断回复类别所造成的问题。</p>
<p><strong>明确设置JSONP回调函数的名字</strong> (<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax 文档</a>,  <a href="http://github.com/jquery/jquery/commit/fbc73d45b487dd863886c7fd3f0af1fd4dec261b">Commit</a>)</p>
<p>你可以使用<a href="http://api.jquery.com/jQuery.ajax/">jQuery.ajax()</a>方法的jsonpCallback选项，通过名字来指定JSONP的回调函数。</p>
<p><strong>防止启动前跨域XHR</strong> (<a href="http://github.com/jquery/jquery/commit/a7678267d848fcef8775c8b9f4fa3e507b8cc5f4">Commit</a>)</p>
<p>跨域Ajax(针对提供支持的浏览器)将更易用，因为默认设置下，启动前XHR被阻止了。(TODO)</p>
<p><strong>jQuery.ajax()现在使用&#8221;onreadystatechange&#8221;事件替换了计时器</strong> (<a href="http://github.com/jquery/jquery/commit/fe6c86d53046b0f4d648f61c0b8e75387af65152">Commit</a>)</p>
<p>使用&#8221;onreadystatechange&#8221;替换了轮流探询，Ajax请求现在将使用更少的资源</p>
<h2>元素属性 (Attributes)</h2>
<p><strong><code>.css()</code>和<code>.attr()</code> 的性能被优化了。</strong></p>
<p>&lt;<a href="http://www.uxd2.com/wp-content/uploads/2010/01/02-perform-cssatrr.jpg" rel="lightbox[69]"><img class="alignnone size-full wp-image-75" title=".css().attr()的性能提高" src="http://www.uxd2.com/wp-content/uploads/2010/01/02-perform-cssatrr.jpg" alt=".css().attr()的性能提高" width="500" height="375" /></a></p>
<p><strong><code>.attr()</code>方法多了一个设置函数作为参数</strong> (<a href="http://api.jquery.com/attr/">.attr() 文档</a>)</p>
<p>你不但可以将一个函数用在<code>.attr()</code>里，还可以在这个函数里使用属性的当前值。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">jQuery<span style="color: #009900;">(</span><span style="color: #3366cc;">'&lt;img src="enter.png" alt="enter your name" /&gt;'</span><span style="color: #009900;">)</span>
.<span style="color: #660066;">attr</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"alt"</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span>index<span style="color: #339933;">,</span> value<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #3366cc;">"Please, "</span> <span style="color: #339933;">+</span> value<span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>.val( Function )</strong> (<a href="http://api.jquery.com/val/">.val() 文档</a>)</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"food"</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'text'</span> data-index<span style="color: #66cc66;">=</span><span style="color: #ff0000;">"0"</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"food"</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">'text'</span> data-index<span style="color: #66cc66;">=</span><span style="color: #ff0000;">"1"</span> <span style="color: #66cc66;">/</span>&gt;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">jQuery<span style="color: #009900;">(</span><span style="color: #3366cc;">"input:text.food"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>

jQuery<span style="color: #009900;">(</span><span style="color: #3366cc;">"&lt;ul class='sortable'&gt;&lt;li&gt;Peanut Butter&lt;/li&gt;&lt;li&gt;Jelly&lt;/li&gt;&lt;/ul&gt;"

</span><span style="color: #009900;">)</span>
  .<span style="color: #660066;">sortable</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span>
  .<span style="color: #660066;">bind</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"endsort"</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    $<span style="color: #009900;">(</span><span style="color: #3366cc;">":text.food"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">val</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
      <span style="color: #000066; font-weight: bold;">return</span> $<span style="color: #009900;">(</span><span style="color: #3366cc;">"ul.sortable li:eq("</span> <span style="color: #339933;">+</span> $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"data-index"</span><span style="color: #009900;">)</span>  <span style="color: #339933;">+</span> <span style="color: #3366cc;">")"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">text</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>text和CDATAHTML元素也支持.text()方法了</strong> (<a href="http://api.jquery.com/text/">.text() 文档</a>, <a href="http://github.com/jquery/jquery/commit/b30af34f28074b491929445f5aad3d62c63e772f">Commit</a>)</p>
<h2>核心 (Core)</h2>
<p><strong>快捷元素创建</strong> (<a href="http://api.jquery.com/jQuery/#jQuery2">jQuery() 文档</a>, <a href="http://github.com/jquery/jquery/commit/d40083c866738727aa7ffd7f13d2955bc9575d5e">Commit</a>)</p>
<p>现在当你需要使用jQuery函数创建一个元素的时候，你可以同时附递一个对象来指定属性值和事件:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">jQuery<span style="color: #009900;">(</span><span style="color: #3366cc;">"
<div>"<span style="color: #339933;">,</span> <span style="color: #009900;">{</span>
    id<span style="color: #339933;">:</span> <span style="color: #3366cc;">"foo"</span><span style="color: #339933;">,</span>
    css<span style="color: #339933;">:</span> <span style="color: #009900;">{</span>
        height<span style="color: #339933;">:</span> <span style="color: #3366cc;">"50px"</span><span style="color: #339933;">,</span>
        width<span style="color: #339933;">:</span> <span style="color: #3366cc;">"50px"</span><span style="color: #339933;">,</span>
        color<span style="color: #339933;">:</span> <span style="color: #3366cc;">"blue"</span><span style="color: #339933;">,</span>
        backgroundColor<span style="color: #339933;">:</span> <span style="color: #3366cc;">"#ccc"</span>
    <span style="color: #009900;">}</span><span style="color: #339933;">,</span>
    click<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
       $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">css</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"backgroundColor"</span><span style="color: #339933;">,</span> <span style="color: #3366cc;">"red"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"body"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></div>

</span></pre>
</div>
</div>
<p>对象里的键值的名字与相关的jQuery的方法的名字是对应的，对象的值会被作为参数传递给jQuery的方法。</p>
<p>(译注:譬如<code>$("&lt;a&gt;link&lt;/a&gt;", {css:{background:"#ccc"}});</code>相当于<code>$("&lt;a&gt;link&lt;/a&gt;")).css("background", "#ccc");</code></p>
<p><strong>.eq(-N), .get(-N) (负指数)</strong> (<a href="http://api.jquery.com/eq/">.eq() 文档</a>, <a href="http://api.jquery.com/get/">.get() 文档</a>, <a href="http://github.com/jquery/jquery/commit/e532dfe5228217f55a33122a4438fd70522dbb4b">Commit</a>)</p>
<p>你现在可以在<code>.get()</code>和<code>.eq()</code>方法里使用负数。譬如，你要选择倒数第2个div元素，或者是倒数第2个DOM对象:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">$<span style="color: #009900;">(</span><span style="color: #3366cc;">"div"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">eq</span><span style="color: #009900;">(</span><span style="color: #339933;">-</span><span style="color: #cc0000;">2</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">(</span><span style="color: #3366cc;">"div"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">get</span><span style="color: #009900;">(</span><span style="color: #339933;">-</span><span style="color: #cc0000;">2</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>新的.first()和.last()方法</strong> (<a href="http://api.jquery.com/first/">.first() 文档</a>, <a href="http://api.jquery.com/last/">.last() 文档</a>, <a href="http://github.com/jquery/jquery/commit/9de120e6d7cfffa3d990a6ccf23db3cd74e2bdc0">Commit</a>)</p>
<p>方便起见, 新增的<code>.first()</code>和<code>.last()</code>方法等同于<a href="http://api.jquery.com/eq/">.eq(0)</a>和<a href="http://api.jquery.com/eq/">.eq(-1)</a>.</p>
<p><strong>新的.toArray()方法</strong> (<a href="http://api.jquery.com/toArray/">.toArray() 文档</a>, <a href="http://github.com/jquery/jquery/commit/e124fec5e9cfee77cb23b27c0d43dc2631c83aab">Commit</a>)</p>
<p><a href="http://api.jquery.com/get">.get()</a>方法自始就是从jQuery集合里返回一个阵列。为了能够更明确, 你可以用<a href="http://api.jquery.com/toArray/">.toArray()</a>来达到一样的效果。(译注:这里应该是为了以后的版本留出空间，譬如以后可能会加入.toList()方法，到时候就会易于区分。) 不过，和<code>.get()</code>不一样的是，<code>.toArray()</code>不接受参数。</p>
<p><strong>jQuery()返回一个空集</strong> (<a href="http://api.jquery.com/jQuery/">jQuery() 文档</a>, <a href="http://github.com/jquery/jquery/commit/04524287d3e0112deae570ff9247c734833431bb">Commit</a>)</p>
<p>在jQuery 1.3中,<a href="http://api.jquery.com/jQuery/">jQuery()</a>方法返回仅包括<code>document</code>的jQuery集合。这个可以用来创建一个空集，然后动态加入一些元素。注: <code>jQuery().ready()</code>方式在1.4中依然有效，但是被指示陈旧了。请使用<code>jQuery(document).ready()</code>或者<code>jQuery(function(){})</code>。</p>
<p><strong>jQuery(“TAG”)</strong> (<a href="http://api.jquery.com/element-selector/">Element Selector 文档</a>, <a href="http://github.com/jquery/jquery/commit/4ea4fad0902839c06c281b5de7b0aca29922b63d">Commit</a>)</p>
<p>当使用单个标签名字的时候jQuery会使用更快捷的路径。</p>
<p><strong>jQuery(&#8220;&lt;div&gt;&#8221;), jQuery(&#8220;&lt;div/&gt;&#8221;) 和 jQuery(&#8220;&lt;div&gt;&lt;/div&gt;”)</strong> (<a href="http://api.jquery.com/jQuery/#jQuery2">jQuery() 文档</a>, <a href="http://github.com/jquery/jquery/commit/c4c820efff4fa7bcce0d5bf0a448625278ea6379">Commit</a>)</p>
<p>现在这三个方法都使用同一个代码路径了(document.createElement), 来优化<code>jQuery("&lt;div&gt;&lt;/div&gt;")</code>的性能。注意，如果你指定了属性，将会使用浏览器本身的语法分析(通过设置innerHTML)。</p>
<h2>样式 (CSS)</h2>
<p><strong>.css()方法在性能是以前的2倍。</strong></p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/03-perform-css.jpg" rel="lightbox[69]"><img class="alignnone size-full wp-image-76" title=".css()的性能提高 " src="http://www.uxd2.com/wp-content/uploads/2010/01/03-perform-css.jpg" alt=".css()的性能提高 " width="500" height="375" /></a></p>
<p><strong><code>.addClass()</code>, <code>.removeClass()</code>, 和 <code>.hasClass()</code>这几个方法在性能上是以前的3倍</strong></p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/04-perform-addClass.jpg" rel="lightbox[69]"><img class="alignnone size-full wp-image-77" title="addClass, removeClass, 和 hasClass的性能提高" src="http://www.uxd2.com/wp-content/uploads/2010/01/04-perform-addClass.jpg" alt="addClass, removeClass, 和 hasClass的性能提高" width="500" height="375" /></a></p>
<p><strong>.toggleClass()可以切换多个css类了</strong> (<a href="http://api.jquery.com/toggleClass/">.toggleClass() 文档</a>, <a href="http://github.com/jquery/jquery/commit/5e6e53835e552920db4f88ac0c9eca71aaacbef0">Commit</a>)</p>
<p>你可以通过<a href="http://api.jquery.com/toggleClass/">.toggleClass()</a>调用多个css类的名字来切换他们。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">$<span style="color: #009900;">(</span><span style="color: #3366cc;">"div"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">toggleClass</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"current active"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<h2>数据</h2>
<p><strong>.data()返回对象, .data(Object)设置对象</strong> (<a href="http://api.jquery.com/data/">.data() 文档</a>, <a href="http://github.com/jquery/jquery/commit/d36d224cc52e70d837306d33a03f517ef72abc60">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/f6a0bf6816f4e2e67382b1b13fdd3ff2ea4b22f8">Commit 2</a>)</p>
<p>有时候你可能需要在一个元素上附加一个复杂的对象。一个常见的例子是你需要从一个元素身上复制所有的数据到令一个元素上。在jQuery 1.4里, 不使用任何参数调用<a href="http://api.jquery.com/data/">.data()</a>时，.data会返回一个复杂对象。(译注: 包含所有键-值对的对象。) 调用<a href="http://api.jquery.com/data/">.data(Object)</a> 则会设置这个对象。注意这个对象还包括了元素上绑定的事件，所以用的时候要小心。</p>
<p><strong>除非需要, 不然不会创建数据缓存。</strong> (<a href="http://github.com/jquery/jquery/commit/c4f144eeffd94c745839b0ced2de9c62cfa9f075">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/97e134fe80a734b97170bf43c9459511f4e165c7">Commit 2</a>, <a href="http://github.com/jquery/jquery/commit/67d445a703491c90a7d3c46be34bcdceb4d1c896">Commit 3</a>)</p>
<p>jQuery使用一个独特的自定义属性来获取特定元素上附加的数据。当查找数据，但是没有新加的数据的时候，jQuery会尽量避免创建这个自定义属性。这样可能会提高性能，同时还会在这种情况下避免污染DOM。</p>
<h2>效果 (Effects)</h2>
<p><strong>单个属性缓进缓出</strong> (<a href="http://api.jquery.com/animate/#per-property-easing">Per-property Easing 文档</a>, <a href="http://github.com/jquery/jquery/commit/93fdbeb963a9c350f807818c7cc99982942a92f3">Commit</a>)</p>
<p>除了能够给一个动态效果指定缓进出函数外，你现在可以指定每个属性的缓进出函数了。James Padolsey的<a href="http://james.padolsey.com/javascript/easing-in-jquery-1-4a2/">blog上</a>有更进一步的信息和演示。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">$<span style="color: #009900;">(</span><span style="color: #3366cc;">"#clickme"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">click</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
  $<span style="color: #009900;">(</span><span style="color: #3366cc;">"div"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">(</span><span style="color: #009900;">{</span>
    width<span style="color: #339933;">:</span> <span style="color: #009900;">[</span><span style="color: #3366cc;">"+=200px"</span><span style="color: #339933;">,</span> <span style="color: #3366cc;">"swing"</span><span style="color: #009900;">]</span><span style="color: #339933;">,</span>
    height<span style="color: #339933;">:</span> <span style="color: #009900;">[</span><span style="color: #3366cc;">"+=50px"</span><span style="color: #339933;">,</span> <span style="color: #3366cc;">"linear"</span><span style="color: #009900;">]</span><span style="color: #339933;">,</span>
  <span style="color: #009900;">}</span><span style="color: #339933;">,</span> <span style="color: #cc0000;">2000</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
      $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">after</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"&lt;div&gt;Animation complete.&lt;/div&gt;"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<h2>事件 (Events)</h2>
<p><strong>新方法: jQuery.proxy()</strong> (<a href="http://api.jquery.com/jQuery.proxy/">jQuery.proxy() Documenation</a>, <a href="http://github.com/jquery/jquery/commit/66975de2d249643779e2b3daad0457f7f5f92508">Commit 1</a>, <a href="http://github.com/jquery/jquery/commit/1d2b1a57dae0b73b3d99197f73f4edb623b5574a">Commit 2</a>)</p>
<p>如果你需要保证一个函数内的&#8221;this&#8221;恒定地保持某个值, 你可以用<code>jQuery.proxy</code>获得一个相同作用域的函数。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: #003366; font-weight: bold;">var</span> obj <span style="color: #339933;">=</span> <span style="color: #009900;">{</span>
  <span style="color: #000066;">name</span><span style="color: #339933;">:</span> <span style="color: #3366cc;">"John"</span><span style="color: #339933;">,</span>
  test<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    <span style="color: #000066;">alert</span><span style="color: #009900;">(</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #000066;">name</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">(</span><span style="color: #3366cc;">"#test"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">unbind</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"click"</span><span style="color: #339933;">,</span> obj.<span style="color: #660066;">test</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span><span style="color: #339933;">;</span>

$<span style="color: #009900;">(</span><span style="color: #3366cc;">"#test"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">click</span><span style="color: #009900;">(</span> jQuery.<span style="color: #660066;">proxy</span><span style="color: #009900;">(</span> obj<span style="color: #339933;">,</span> <span style="color: #3366cc;">"test"</span> <span style="color: #009900;">)</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>多个事件绑定</strong> (<a href="http://api.jquery.com/bind">.bind() 文档</a>)</p>
<p>你可以通过递入一个对象来一次性绑定元素的多个事件。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">$<span style="color: #009900;">(</span><span style="color: #3366cc;">"div.test"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">bind</span><span style="color: #009900;">(</span><span style="color: #009900;">{</span>
  click<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
    $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"active"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">}</span><span style="color: #339933;">,</span>
  mouseenter<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
    $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"inside"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">}</span><span style="color: #339933;">,</span>
  mouseleave<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">{</span>
    $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"inside"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>&#8216;change&#8217;和&#8217;submit&#8217;事件规范化</strong> (<a href="http://api.jquery.com/change">Change 文档</a>, <a href="http://api.jquery.com/submit">Submit 文档</a>)</p>
<p>普通的或是即时的<code>change</code>和<code>submit</code>事件可以在各种浏览器上稳定工作了。我们覆盖了IE里的<code>change</code>和<code>submit</code>, 替换为与其他浏览器相同的事件。</p>
<p><strong>新的事件: &#8216;focusin&#8217; and &#8216;focusout&#8217;</strong> (<a href="http://api.jquery.com/focusin/">.focusin() 文档</a>, <a href="http://api.jquery.com/focusout/">.focusout() 文档</a>, <a href="http://github.com/jquery/jquery/commit/03481a52c72e417b01cfeb499f26738cf5ed5839">Commit</a>)</p>
<p><code>focusin</code>和<code>focusout</code>在一般情况下等同于<code>focus</code>和<code>blur</code>, 但是多了向父元素传递的作用。如果你自己编写你的事件代理模式(TODO), 这个功能将对你有很大帮助。请注意对<code>focus</code>和<code>blur</code>使用<code>live()</code>方法将不会起作用; 在设计的时候我们根据 <a href="http://www.w3.org/TR/DOM-Level-2-Events/events.html">DOM事件规范</a>决定不使其向父元素传递事件。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">$<span style="color: #009900;">(</span><span style="color: #3366cc;">"form"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">focusout</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span>event<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    <span style="color: #003366; font-weight: bold;">var</span> tgt <span style="color: #339933;">=</span> event.<span style="color: #660066;">target</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">(</span>tgt.<span style="color: #660066;">nodeName</span> <span style="color: #339933;">==</span> <span style="color: #3366cc;">"INPUT"</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>tgt.<span style="color: #660066;">value</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
        $<span style="color: #009900;">(</span>tgt<span style="color: #009900;">)</span>.<span style="color: #660066;">after</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"<span>nothing here</span>"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>所有的事件都可以成为即时事件</strong> (<a href="http://api.jquery.com/live">.live() 文档</a>)</p>
<p>除了<a href="http://api.jquery.com/ready">ready</a>, <a href="http://api.jquery.com/focus">focus</a> (用focusin), 和 <a href="http://api.jquery.com/blur">blur</a> (用focusout)以外, 所有能用<code>.bind()</code>绑定的事件都可以成为即时事件。</p>
<p>在<code>live()</code>所支持的事件里，我们对能够支持下面这几个额外的事件感到尤其骄傲。通过<code>.live()</code>里的事件代理, 1.4版实现了对<code>change</code>, <code>submit</code>, <code>focusin</code>, <code>focusout</code>, <code>mouseenter</code>, 以及<code>mouseleave</code>事件的跨浏览器支持。</p>
<p>注: 如果你需要即时的<code>focus</code>事件，你应该用<code>focusin</code>和<code>focusout</code>, 而不要用<code>focus</code>和<code>blur</code>, 因为就像前面提到的, <code>focus</code>和<code>blur</code>不向上传递。</p>
<p>还有, <code>live()</code>也接受数据对象作为参数了, 同<code>bind()</code>方法一样 (<a href="http://github.com/jquery/jquery/commit/71efbdd3b26f3a283f8d4bfdcc7b6343142027b9">Commit</a>)</p>
<p><strong>live/die也支持环境变量了</strong> (<a href="http://github.com/jquery/jquery/commit/30e760b63fd6d82f30833cd2864f245dd9594cd9">Commit</a>)</p>
<p>现在可以在绑定事件的时候给选择符指定一个环境。如果环境被指定了, 只有属于这个环境下的元素才会被绑定事件。在创建即时事件的时候, 元素本身不需要已经被定义, 但是环境必须被创建。</p>
<p><strong>确定ready事件至少含有<code>body</code>元素</strong> (<a href="http://github.com/jquery/jquery/commit/262fcf7b7b919da1564509f621cf7480a5d5572b">Commit</a>)</p>
<p>jQuery现在会检查<code>body</code>是不是存在，如果不存在，会对<code>body</code>进行轮流探询。</p>
<p><strong>在不需要手动处理内存溢出的非IE浏览器中, 卸载的速度提高了。</strong> (<a href="http://github.com/jquery/jquery/commit/f3474c00cd6d9e5fd61b6ef1562003e9986ad67d">Commit</a>)</p>
<h2>DOM操作 (Manipulation)</h2>
<p>在jQuery 1.4里一系列的DOM操作方法的性能都有巨大的提升。</p>
<p><strong><a href="http://api.jquery.com/append">.append()</a>, <a href="http://api.jquery.com/prepend">.prepend()</a>, <a href="http://api.jquery.com/before">.before()</a>, and <a href="http://api.jquery.com/after">.after()</a>的性能提高了。</strong></p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/05-perform-dom.jpg" rel="lightbox[69]"><img class="alignnone size-full wp-image-78" title="DOM嵌入的性能提高" src="http://www.uxd2.com/wp-content/uploads/2010/01/05-perform-dom.jpg" alt="DOM嵌入的性能提高" width="500" height="375" /></a></p>
<p><strong><a href="http://api.jquery.com/html">.html()</a>的性能提高到以前的3倍。</strong></p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/06-perform-html.jpg" rel="lightbox[69]"><img class="alignnone size-full wp-image-79" title=".html()的性能提高" src="http://www.uxd2.com/wp-content/uploads/2010/01/06-perform-html.jpg" alt=".html()的性能提高" width="500" height="375" /></a></p>
<p><strong>.remove()和.empty()的速度则达到以前的4倍.</strong></p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/07-perform-remove.jpg" rel="lightbox[69]"><img class="alignnone size-full wp-image-80" title=".remove() 和 .empty()的性能提高" src="http://www.uxd2.com/wp-content/uploads/2010/01/07-perform-remove.jpg" alt=".remove() 和 .empty()的性能提高" width="500" height="375" /></a></p>
<p><strong>新方法: .detach()</strong> (<a href="http://api.jquery.com/detach/">.detach() 文档</a>, <a href="http://github.com/jquery/jquery/commit/7a67f8897d3c2ed97254f0fdb969be14e77962d1">Commit</a>)</p>
<p><code>detach()</code>将一个元素从DOM里移除, 但是并不卸载关联的事件处理函数。这个方法可用于暂时性的将一个元素移除，执行相关操作，然后返回。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: #003366; font-weight: bold;">var</span> foo <span style="color: #339933;">=</span> $<span style="color: #009900;">(</span><span style="color: #3366cc;">"#foo"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">click</span><span style="color: #009900;">(</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    <span style="color: #006600; font-style: italic;">// 相关操作</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
foo.<span style="color: #660066;">detach</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// foo保留了相关处理函数</span>
foo.<span style="color: #660066;">appendTo</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"body"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>新的unwrap()方法</strong> (<a href="http://api.jquery.com/unwrap/">documentation</a>, <a href="http://github.com/jquery/jquery/commit/69e6e53555f21f07b534f1169298f7b33011bb4b">commit</a>)</p>
<p><code>unwrap()</code>方法拿到一个已知的父元素的子元素，然后将父元素用子元素替换。(译注: 将子元素从&#8221;包裹&#8221;里拿出来, 因名unwrap)。如此这般:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>annie<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span> <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>davey<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span> <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>stevie<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">$<span style="color: #009900;">(</span><span style="color: #3366cc;">'div'</span><span style="color: #009900;">)</span>.<span style="color: #660066;">unwrap</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>annie<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span> <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>davey<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span> <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>stevie<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span></pre>
</div>
</div>
<p><strong>domManip方法里的缓存</strong> (<a href="http://github.com/jquery/jquery/commit/8db967e9d52407c8e76d81b9d472800667f6fa29">commit</a>)</p>
<p>jQuery会将<code>jQuery("&lt;div&gt;")</code>和<code>.after("&lt;div&gt;")</code>一类方法创建的节点记入缓存。这样, 对于利用这些方法, 使用字符串进行DOM操作的页面，性能将有极大的提高。</p>
<p><strong>无连接的节点间的before, after, replaceWith操作</strong> (<a href="http://github.com/jquery/jquery/commit/173c1477ae6efc4c2eeb7131ba0646c4e1323975">commit</a>)</p>
<p>现在你可以对还没有放置到DOM Tree上的节点进行<code>before</code>, <code>after</code>, 和<code>replaceWith</code>的操作了。意味着你可以先对节点进行复杂的操作, 待完成后再放到合适的DOM位置上。这样也能尽量避免操作过程中造成重新排版。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">jQuery<span style="color: #009900;">(</span><span style="color: #3366cc;">"&lt;div&gt;"<span style="color: #009900;">)</span>.<span style="color: #660066;">before</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"&lt;p&gt;Hello&lt;/p&gt;"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">appendTo</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"body"</span><span style="color: #009900;">)</span></span></pre>
</div>
</div>
<p><strong><code>.clone(true)</code> 也会复制关联数据</strong> (<a href="http://api.jquery.com/clone/">clone 文档</a>, <a href="http://github.com/jquery/jquery/commit/4b70f006f579fba24a882d80ca67f1971dbb4922">commit</a>)</p>
<p>1.3版中, <code>.clone(true)</code>虽然也是深度复制, 但是没有复制关联的数据。1.4版里，它则会复制数据, 同时还包括所有的事件。这点上和<code>jQuery.extend</code>在语义想同的, 所以普通对象和阵列会被复制, 但是自定义的对象则不会。</p>
<h2>位移 (Offset)</h2>
<p><strong>.offset( coords | Function )</strong> (<a href="http://api.jquery.com/offset/">.offset() 文档</a>, <a href="http://github.com/jquery/jquery/commit/daffb954e397bd5d9f8e9aaedab6c0baa9609e1e">commit</a>)</p>
<p>现在可以设置元素的位移了! 和所有的设置函数一样, <code>offset</code>也可以接受一个函数作为第二个参数。</p>
<h2>队列 (Queueing)</h2>
<p>队列经历了一次大修, 使用队列会比使用默认的<code>fx</code>更易掌握。</p>
<p><strong>新的 .delay() 方法</strong> (<a href="http://api.jquery.com/delay/">.delay() 文档</a>, <a href="http://github.com/jquery/jquery/commit/bbd933cbfe6d31a749cb336d7a84155ccfab247f">commit</a>)</p>
<p><code>.delay()</code>方法会根据参数滞后若干毫秒执行队列里剩下的对象。默认的它会使用&#8221;fx&#8221;队列。但你可以选择性的通过<code>delay</code>方法的第二个参数选择其他队列。(译注:每个队列都以一个名字识别。)</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">$<span style="color: #009900;">(</span><span style="color: #3366cc;">"div"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span>.<span style="color: #660066;">delay</span><span style="color: #009900;">(</span><span style="color: #cc0000;">4000</span><span style="color: #009900;">)</span>.<span style="color: #660066;">fadeOut</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>队列里的<code>next</code></strong> (<a href="http://api.jquery.com/queue/">.queue() 文档</a>, <a href="http://github.com/jquery/jquery/commit/89b4bc53ca0ca3d4e5c80b94ce92b09cc34af8ef">commit</a>)</p>
<p>jQuery 1.4版里, 当队列里的一个函数被调用的时候，第一个参数会被设为另一个函数。当后者被调用的时候, 会自动排除队列里的下一个对象, 以此来推动队列到下一步。</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;">jQuery<span style="color: #009900;">(</span><span style="color: #3366cc;">"div"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">queue</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"ajax"</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span>next<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
  <span style="color: #003366; font-weight: bold;">var</span> self <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">this</span><span style="color: #339933;">;</span>
  jQuery.<span style="color: #660066;">getJSON</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"/update"</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span>json<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    $<span style="color: #009900;">(</span>self<span style="color: #009900;">)</span>.<span style="color: #660066;">html</span><span style="color: #009900;">(</span>json.<span style="color: #660066;">text</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    next<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">}</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span>.<span style="color: #660066;">queue</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"ajax"</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
  $<span style="color: #009900;">(</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">)</span>.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p><strong>.clearQueue()</strong> (<a href="http://api.jquery.com/clearQueue/">clearQueue 文档</a>, <a href="http://github.com/jquery/jquery/commit/d857315967a1cc07b73924bbdf2eb12f4f910c45">commit</a>)</p>
<p>队列可以被清空了。这个方法会移除队列里所有未执行的函数, 但不会移除正在运行的函数。无参数的情况下调用<code>.clearQueue()</code>方法将会清空默认的&#8221;fx&#8221;队列。</p>
<h2>选择符 (Selectors)</h2>
<p><strong>&#8220;#id p&#8221;效率更高</strong> (<a href="http://github.com/jeresig/sizzle/commit/c5c18ae5f17f11b39b7f261633e4bfc5ef3e99d7">commit</a>)</p>
<p>所有以ID开头的选择符都得到了优化, 能够在瞬间得到返回值。所有以ID为开头的选择符速度将一直快于其他选择符。</p>
<h2>页面遍访 (Traversing)</h2>
<p><strong>.index(), .index(String)</strong> (<a href="http://api.jquery.com/index/">index 文档</a>, <a href="http://github.com/jquery/jquery/commit/ffd457d4561eb1a6653aaef90f92a3b3010b9139">commit</a>)</p>
<p><code>.index()</code> 方法经过重写, 变得更加直观和灵活。</p>
<p>你可以获得一个元素相对于同父元素的指数:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: #006600; font-style: italic;">// 计算第一个 &lt;li class="current"&gt; 元素在它所有的同父元素中的指数:</span>
$<span style="color: #009900;">(</span><span style="color: #3366cc;">"li.current"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">index</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span></pre>
</div>
</div>
<p>你也可以获得一个元素在一个jQuery元素集合中的指数, 这个集合可以用一个选择符或者是一个DOM元素来指定:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: #006600; font-style: italic;">// 计算这个 &lt;h3 id="more-info"&gt; 元素在页面上所有 &lt;h3&gt; 元素里的指数:
$<span style="color: #009900;">(</span><span style="color: #3366cc;">"#more-info"</span><span style="color: #009900;">)</span>.<span style="color: #660066;">index</span><span style="color: #009900;">(</span><span style="color: #3366cc;">"h3"</span><span style="color: #009900;">)</span>

</span></pre>
</div>
</div>
<p><strong>新的.has()方法</strong> (<a href="http://api.jquery.com/has/">has 文档</a>, <a href="http://github.com/jquery/jquery/commit/4e27f17007c2329e31b449e61bb31197b90a37f1">commit</a>)</p>
<p>这个方法相当于选择符里的<code>:has()</code>过滤法。它拿到一个jQuery集合,返回含有指定选择符的元素。</p>
<p><strong>新的 .nextUntil(), .prevUntil(), .parentsUntil() 方法</strong> (<a href="http://api.jquery.com/nextUntil/">.nextUntil() 文档</a>, <a href="http://api.jquery.com/prevUntil/">.prevUntil() 文档</a>, <a href="http://api.jquery.com/parentsUntil/">.parentsUntil() 文档</a>, <a href="http://github.com/jquery/jquery/commit/2b481b93cfca62f95aa7005e7db651456fa08e65">commit</a>)</p>
<p>新的&#8221;until&#8221;方法类似于<code>.nextAll()</code>, <code>.prevAll()</code>, 和<code>.parents()</code>。区别是可以用一个选择符来停止元素探索。</p>
<p><strong>.add(String, Element)</strong> (<a href="http://jquery14.com/day-01/%3C/p%3E%3Cp%3Ehttp://api.jquery.com/add/%3C/p%3E%3Cp%3E">.add() 文档</a>, <a href="http://jquery14.com/day-01/%3C/p%3E%3Cp%3Ehttp://github.com/jquery/jquery/commit/b0fe380cf89564305646bbd55d1fd7bd210fd591%3C/p%3E%3Cp%3E">commit</a>)</p>
<p>可以给<code>.add()</code>方法指定环境了。这个功能可以用于在一个调用链中加入和操作额外元素(比如Ajax请求里返回的新元素)。</p>
<p><strong>.closest(filter, DOMElement)</strong> (<a href="http://api.jquery.com/closest/">.closest() 文档</a>, <a href="http://github.com/jquery/jquery/commit/d6991fa273515a8503692324499edcc71b5c3f64">commit</a>)</p>
<p>可以通过<code>closest</code>方法的第2个参数设置一个<code>DOMElement</code>环境。给<code>closest</code>设置一个环境一般能够提高这个方法的运行速度。这个优化也适用<code>live()</code>, 因为这个方法内部调用了<code>closest()</code>。</p>
<h2>常用工具 (Utilities)</h2>
<p><strong>jQuery.isEmptyObject()</strong> (<a href="http://api.jquery.com/jQuery.isEmptyObject/">jQuery.isEmptyObject() 文档</a>, <a href="http://github.com/jquery/jquery/commit/a38a5cd531a328319f8b7f3f33a84044b54591ce">commit</a>)</p>
<p>如果对象,em&gt;没有任何属性, 该方法将返回<code>true</code>。<code>jQuery.isEmptyObject()</code>方法不对参数进行任何检查, 所以请保证参数是一个对象。</p>
<p><strong>jQuery.isPlainObject()</strong> (<a href="http://api.jquery.com/jQuery.isPlainObject/">jQuery.isPlainObject()</a>, <a href="http://github.com/jquery/jquery/commit/4b55e94d0849568a2fd121952f13a9d6571c731f">commit</a> )</p>
<p>如果一个对象是通过字符创建的(译注:{}),<code>jQuery.isPlainObject()</code>返回<code>true</code>; 如果对象是其他类别的对象(译注:如new Object())或者是基本类型, 则返回<code>false</code>。</p>
<p><strong>jQuery.contains()</strong> (<a href="http://api.jquery.com/jQuery.contains/">jQuery.contains() 文档</a>, <a href="http://github.com/jquery/jquery/commit/4e27f17007c2329e31b449e61bb31197b90a37f1">commit</a>)</p>
<p>如果两个参数都是DOM节点，并且第二个节点是嵌套在第一个节点内部的话, <code>jQuery.contains()</code>返回<code>true</code>。反之返回<code>false</code>。</p>
<p><strong>jQuery.noop</strong> (<a href="http://api.jquery.com/jQuery.noop/">jQuery.noop() 文档</a>, <a href="http://github.com/jquery/jquery/commit/6cb2945837ccca55204191a8e7a70b2b2486c28e">commit</a>)</p>
<p>是个空的函数, 可以用在必须要有一个函数的情况下。(译注: noop是No Operation的意思。)</p>
<p><strong>jQuery.unique()</strong> (<a href="http://api.jquery.com/jQuery.unique/">jQuery.unique() 文档</a>)</p>
<p>jQuery 1.4版中, <code>jQuery.unique()</code>方法返回结果里的元素是按照他们在页面里的顺序排序的。由于在创建jQuery集合的时候jQuery使用<code>jQuery.unique()</code>方法, 所以jQuery方法返回的集合也是按照他们在页面里的顺序排列的。</p>
<h2>其他 (Miscellaneous)</h2>
<p><strong>jQuery.browser以浏览器引擎为中心</strong> (<a href="http://api.jquery.com/jQuery.browser/">jQuery.browser 文档</a>, <a href="http://jquery14.com/day-01/%3Cbr%20/%3Ehttp://github.com/jquery/jquery/commit/ffb1867a4364ea65e60dad3469e8c8eb420ebcac">commit</a>)</p>
<p>例如, 你可以通过<code>jQuery.browser.webkit</code>探测引擎是否是Webkit。</p>
<p><strong>改进了对<code>applets</code>的处理</strong> (<a href="http://github.com/jquery/jquery/commit/59802928566b6be3a66d65e77c2418fff37e6f5f">commit 1</a>, <a href="http://github.com/jquery/jquery/commit/3ec2f1aef6b137d0f639e2fc53f95352d24b9d90">commit 2</a>)</p>
<p>jQuery不再试图在Java applets上绑定事件或是数据了(绑定事件或是数据会出现错误)。</p>
<p><strong>不再使用arguments.callee</strong> (<a href="http://github.com/jquery/jquery/commit/985856b823b1648bffc3fd63c1faf836d0ddaf7c">commit</a>)</p>
<p>为了顺应<a href="http://code.google.com/p/google-caja/">Caja</a>的要求, 同时也因为即将开始应用的ECMAScript 5规范里将其标记为陈旧, 我们将jQuery核心中所有用到<code>arguments.callee</code>的代码都移除了。</p>
<p><strong>用Closure Compiler替换了YUI Min</strong> (<a href="http://github.com/jquery/jquery/commit/3fd62eae9df3159fc238a515bb748140a942313d">commit</a>)</p>
<h2>内部重组 (Internal Reorganization)</h2>
<p>在1.4版的开发过程中的一个重点是要建立一个更易读, 更易懂的代码库。为了达到这个目标我们树立了一系列编写代码规范的向导。</p>
<p>下面是一些主要的变化:</p>
<ul>
<li>旧的&#8217;core.js&#8217;文件被分成了&#8217;attribute.js&#8217;, &#8216;css.js&#8217;, &#8216;data.js&#8217;, &#8216;manipulation.js&#8217;, &#8216;traversing.js&#8217;, and &#8216;queue.js&#8217;.</li>
<li>ready事件被移入了&#8217;core.js&#8217; (因为它是jQuery的一个基本组成之一)。</li>
<li>大部分核心代码都符合新的<a href="http://docs.jquery.com/JQuery_Core_Style_Guidelines">代码规范</a>.</li>
<li>css和属性的逻辑被划分开来, 不再如以往相互缠绕。</li>
</ul>
<h2>测试 (Testing)</h2>
<p>jQuery 1.4版发布过程中我们<a href="http://dev.jquery.com/report/34">修复了207个问题</a> (比较之下1.3版里有97个修复)。</p>
<p>jQuery 1.4.此外, 测试的数量从jQuery 1.3.2中的1504例升到了1.4中的3060例。</p>
<p>所有测试都在主要浏览器里完全通过了。(Safari 3.2, Safari 4, Firefox 2, Firefox 3, Firefox 3.5, IE 6, IE 7,<br />
IE 8, Opera 10.10, and Chrome)</p>
<p><a href="http://www.uxd2.com/wp-content/uploads/2010/01/08-test.jpg" rel="lightbox[69]"><img class="alignnone size-full wp-image-81" title="jQuery 1.4 测试结果" src="http://www.uxd2.com/wp-content/uploads/2010/01/08-test.jpg" alt="jQuery 1.4 测试结果" width="500" height="277" /></a></p>
<h1><a name="backwards"></a></h1>
<p>我们尽量试图减小jQuery 1.4对大规模升级可能造成的麻烦 &#8211; 保持所有公开函数的签名不变。即使如此, 请通读下面的列表以保证你对可能对你的应用造成问题的变更。</p>
<ul>
<li><a href="http://api.jquery.com/add">.add()</a>不再简单的将结果串联到一起, 结果将会被混合到一起, 然后根据他们在页面里的顺序排列。</li>
<li><a href="http://api.jquery.com/clone">.clone(true)</a>将复制事件和数据, 而不仅是事件。</li>
<li><a href="http://api.jquery.com/jQuery.data">jQuery.data(elem)</a> 不再返回<code>id</code>, 取而代之的是元素的对象缓存。</li>
<li><a href="http://api.jquery.com/jQuery">jQuery()</a> (无参数) 不再自动转换成<a href="http://api.jquery.com/jQuery">jQuery(document)</a>了。</li>
<li>通过<a href="http://api.jquery.com/val">.val(&#8220;…&#8221;)</a>获得一个<code>option</code>或一个<code>checkbox</code>的值不再有歧义(将总是根据<code>value</code>属性选择, 而不是根据<code>text</code>的值)。(<a href="http://github.com/jquery/jquery/commit/f298cce100c6fe23840ac95e66aaea9cb2bfb447">Commit</a>)</li>
<li><a href="http://api.jquery.com/jQuery.browser">jQuery.browser.version</a>现在将返回引擎的版本.</li>
<li>现在起将对引入的JSON更严格, 如果JSON的格式不符将会报错。如果你需要对不符合JSON严格格式的Javascript进行估值, 你必须设置请求的文件类型为纯文本, 然后用<code>eval()</code>来对内容估值。</li>
<li>参数序列化默认会按照PHP/Rails的风格进行。你可以通过<code>jQuery.ajaxSettings.traditional = true;</code>来切换到旧的序列化方式。你也可以针对个别请求进行切换, 在调用<a href="http://api.jquery.com/jQuery.ajax">jQuery.ajax</a>的时候递入<code>{traditional: true}</code></li>
<li>内部的jQuery.className被移除了。</li>
<li><a href="http://api.jquery.com/jQuery.extend">jQuery.extend(true, …)</a>不再扩展复杂对象或是阵列。(TODO)</li>
<li>如果一个<a href="http://api.jquery.com/jQuery.ajax">Ajax请求</a>没有指定dataType, 而返回的数据类型是&#8221;text/javascript&#8221;, 那么回复将会被执行。之前, 必须明确的指定dataType。</li>
<li>设置<a href="http://api.jquery.com/jQuery.ajax">Ajax 请求</a>的&#8221;ifModified&#8221;属性会将ETags纳入考虑。</li>
</ul>
<p>我们还针对1.4版中可能造成问题的变更编写了一个向后兼容的<a href="http://github.com/jquery/jquery-compat-1.3">插件</a>。如果你升级到1.4以后出现问题, 可以在引入1.4版的文件之后引入这个插件。</p>
<p>如何使用这个插件:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html4strict" style="font-family: monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"http://code.jquery.com/jquery.js"</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"http://code.jquery.com/jquery.compat-1.3.js"</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span></pre>
</div>
</div>
<h1>原始数据和测试页面</h1>
<p>性能测试中我们使用了下列测试套包:</p>
<ul>
<li><a href="http://ejohn.org/files/jquery1.4/slick/?type=attr">Attributes</a></li>
<li><a href="http://ejohn.org/files/jquery1.4/slick/?type=class">Class</a></li>
<li><a href="http://ejohn.org/files/jquery1.4/slick/?type=dom">DOM Manipulation</a></li>
<li><a href="http://ejohn.org/files/jquery1.4/slick/?type=empty">Empty/Remove</a></li>
<li>Function Call Profiling: <a href="http://ejohn.org/files/jquery-profile.html">1.3.2</a> <a href="http://ejohn.org/files/jquery-profile-14.html">1.4</a>.</li>
</ul>
<p>结果的原始数据 (所有的数据都是 1.3.2 vs. 1.4):</p>
<pre>函数调用的次数
547    3
760    3
500    200
896    399
23909    299
307    118
28955    100
28648    201
1662    593

DOM嵌入
558    317
1079    624
1079    516
1155    829
436    332
196    194
243    169

HTML
116    46
281    78
313    78
234    63
134    43
43    42
91    27

CSS/属性
703    370
1780    1250
1765    1250
1157    749
629    498
346    184
333    161

CSS
114    52
203    93
118    93
109    47
116    54
58    24
54    22

CSS类
553    138
1578    546
1515    501
1033    327
769    298
229    80
173    41

移除/清空
3298    286
9030    2344
7921    1703
5282    1266
2898    303
1166    140
1034    122</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.uxd2.com/2010/01/%e7%bf%bb%e8%af%91-jquery1-4%e5%ae%98%e6%96%b9%e6%96%87%e6%a1%a3/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->