<?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>有米啦</title>
	<atom:link href="http://blog.youmila.com/index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.youmila.com</link>
	<description>关注actionscript,flash,javascript,xhtml,css</description>
	<lastBuildDate>Thu, 02 Sep 2010 06:31:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>javascript的 CSS选择器引擎时间表</title>
		<link>http://blog.youmila.com/?p=928</link>
		<comments>http://blog.youmila.com/?p=928#comments</comments>
		<pubDate>Thu, 02 Sep 2010 06:31:45 +0000</pubDate>
		<dc:creator>tianhua</dc:creator>
				<category><![CDATA[css+xhtml]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web前端share]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css selector]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[selector]]></category>

		<guid isPermaLink="false">http://blog.youmila.com/?p=928</guid>
		<description><![CDATA[原文标题：Javascript CSS Selector Engine Timeline
我一直对css选择器引擎代码很感兴趣. 为了观察从基本发展到最快的发展过程，我收集了所有的数据时间点，看看下面，你就知道 Jack  Slocum 说的很对 &#8220;css 选择器的能力已近从平托权力到了野马GT 500

 2003.03.25: document.getElementsBySelector() by Simon Willison (later used in behaviour.js) [source]
<span class="readmore"><a href="http://blog.youmila.com/?p=928" title="javascript的 CSS选择器引擎时间表" target="_blank">阅读全文——共1064字</a></span>]]></description>
			<content:encoded><![CDATA[<p>原文标题：Javascript CSS Selector Engine Timeline</p>
<p>我一直对css选择器引擎代码很感兴趣. 为了观察从基本发展到最快的发展过程，我收集了所有的数据时间点，看看下面，你就知道 Jack  Slocum 说的很对 &#8220;css 选择器的能力已近从平托权力到了野马GT 500</p>
<ul>
<li> 2003.03.25: <a href="http://simonwillison.net/2003/Mar/25/getElementsBySelector/">document.getElementsBySelector()</a> by Simon Willison (later used in behaviour.js) <small><a href="http://simonwillison.net/static/2003/getElementsBySelector.js">[source]</a></small></li>
<li> 2004.04.10: <a href="http://dean.edwards.name/my/cssQuery/1_0/">CssQuery() 1.0</a>: by Dean Edwards <small><a href="http://dean.edwards.name/my/cssQuery/1_0/cssQuery-source.js">[source]</a></small></li>
<li> 2005.08.19: <a href="http://dean.edwards.name/my/cssQuery/">CssQuery() 2.0</a>. <small><a href="http://dev.fckeditor.net/browser/FCKtest/runners/selenium/lib/cssQuery/src?rev=1044">[source]</a></small></li>
<li> 2005.08.22: <a href="http://ejohn.org/blog/selectors-in-javascript/">jSelect</a> (precursor to jQuery) <small><a href="http://ejohn.org/apps/jselect/selector.js">[source]</a></small></li>
<li> 2006.01.14: <a href="http://ejohn.org/blog/barcampnyc-wrap-up/">jQuery</a> first release. <small><a href="http://dev.jquery.com/browser/jquery/core/core.js?rev=1#L397">[source]</a></small></li>
<li> 2006.01.18: <a href="http://ajaxian.com/archives/prototype-adds-css-selector-function-divpage-psummary-img">Prototype</a>. Initial release of selector engine. <small><a href="http://dev.rubyonrails.org/browser/spinoffs/prototype/src/selector.js?rev=3432">[source]</a></small></li>
<li>2006.04.04: <a href="http://mad4milk.net/entry/moo.dom-easily-target-html-elements">moo.dom</a> (precursor to mootools) <small><a href="http://moodom.mad4milk.net/moo.dom.js">[source]</a></small></li>
<li> 2006.08.26: <a href="http://jquery.com/blog/2006/08/26/jquery-10/">jQuery 1.0</a> <small><a href="http://dev.jquery.com/browser/tags/1.0/src/jquery/jquery.js#L1157">[source]</a></small></li>
<li> 2006.11.14: <a href="http://www.mochikit.com/doc/html/MochiKit/Selector.html">Mochikit Selector</a>. (orig. ported from prototype) <small><a href="http://trac.mochikit.com/browser/mochikit/trunk/MochiKit/Selector.js">[source]</a></small></li>
<li> 2007.01.08: <a href="http://jquery.com/blog/2007/01/08/jquery-11a/">jQuery 1.1a</a> (&#8220;10-20x faster than 1.0&#8243;) <small><a href="http://dev.jquery.com/browser/tags/1.1a/src/selector/selector.js">[source]</a></small></li>
<li> 2007.01.11: <a href="http://www.jackslocum.com/blog/2007/01/11/domquery-css-selector-basic-xpath-implementation-with-benchmarks/">DomQuery</a> by Jack Slocum (ExtJS). <small><a href="http://www.yui-ext.com/deploy/ext-1.0.1/source/core/DomQuery.js">[source]</a></small></li>
<li> 2007.02.05: <a href="http://dojotoolkit.org/node/336">dojo.query()</a>. <small><a href="http://trac.dojotoolkit.org/browser/trunk/src/query.js">[source]</a></small></li>
<li> 2007.03.21: <a href="http://dean.edwards.name/weblog/2007/03/yet-another/">base2.DOM</a>. <small><a href="http://base2.googlecode.com/svn/version/1.0%28beta2%29/src/base2-dom.js">[source]</a></small></li>
<li> 2007.05.01: <a href="http://www.prototypejs.org/2007/5/1/prototype-1-5-1-released">Prototype 1.5.1</a> <small><a href="http://dev.rubyonrails.org/browser/spinoffs/prototype/tags/rel_1-5-1/src/selector.js">[source]</a></small></li>
<li> 2007.05.07: <a href="http://blog.mootools.net/2007/6/11/selectors-on-fire">Mootools 1.1</a> <small><a href="http://dev.mootools.net/browser/tags/1-10/Element/Element.Selectors.js">[source]</a></small></li>
<li> 2007.07.01: <a href="http://jquery.com/blog/2007/07/01/jquery-113-800-faster-still-20kb/">jQuery 1.1.3</a> (&#8220;800% faster&#8221;) <small><a href="http://dev.jquery.com/browser/tags/1.1.3.1/src/selector/selector.js">[source]</a></small></li>
<li> 2007.07.10: <a href="http://extjs.com/blog/2007/07/10/css-selectors-speed-myths/">Ext 1.1 RC1</a> <small><a href="http://trac.pagodacms.org/browser/pagoda/misc/ajax_form/javascript/ext-1.1-rc1/source/core/DomQuery.js?rev=467">[source]</a></small></li>
<li> 2007.07.10: Dojo 0.9 <small><a href="http://download.dojotoolkit.org/release-0.9.0/dojo-release-0.9.0-src/dojo/_base/query.js">[source]</a></small></li>
<li> 2007.12.04: <a href="http://yuiblog.com/blog/2007/12/04/yuii-240/">YUI 2.4.0</a> <small><a href="http://yui.yahooapis.com/2.4.1/build/selector/selector-beta-debug.js">[source]</a></small></li>
<li> 2007.12.17: <a href="http://javascript.nwbox.com/NWMatcher/">NWMatcher</a> by Diego Perini <small><a href="http://nwevents.googlecode.com/svn/trunk/nwmatcher.js">[source]</a></small></li>
</ul>
<p><strong>Update</strong>: Added Base2, CssQuery1.0. Corrected jQuery launch date.<br />
<strong>Update</strong>: Added Dojo 0.9, NWMatcher.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.youmila.com/?feed=rss2&amp;p=928</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用户体验书籍推荐</title>
		<link>http://blog.youmila.com/?p=926</link>
		<comments>http://blog.youmila.com/?p=926#comments</comments>
		<pubDate>Wed, 25 Aug 2010 04:12:48 +0000</pubDate>
		<dc:creator>tianhua</dc:creator>
				<category><![CDATA[UX]]></category>
		<category><![CDATA[web前端share]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[UE]]></category>
		<category><![CDATA[ued]]></category>
		<category><![CDATA[UserExperience]]></category>

		<guid isPermaLink="false">http://blog.youmila.com/?p=926</guid>
		<description><![CDATA[用户体验入门新手书籍推荐~
在twitter的@uxbooks，我推荐了相关UX方面的书籍。一般我比较懒的时候会默认推荐Steve Krug的精华书籍《 Don’t Make Me Think》.

尽管该书是很令人称赞的，但是我感觉还是把用户体验的相关书籍放在一起罗列推荐，对作者和读者才是公平的。
<span class="readmore"><a href="http://blog.youmila.com/?p=926" title="用户体验书籍推荐" target="_blank">阅读全文——共2378字</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.webappers.com/2009/10/22/edit-test-and-debug-javascript-online-collaboratively/"><span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: Tahoma,Helvetica,Arial,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="color: #353535; font-size: 14px; line-height: 21px;"></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">用户体验入门新手书籍推荐~</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">在twitter的@uxbooks，我推荐了相关UX方面的书籍。一般我比较懒的时候会默认推荐Steve Krug的精华书籍《 <span class="reference-title" style="margin: 0px; padding: 0px;"><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" href="http://www.amazon.com/gp/product/0321344758?ie=UTF8&amp;tag=ux-booth-20">Don’t Make Me Think</a>》</span>.</p>
<p><span class="Apple-style-span" style="margin: 0px; padding: 0px; line-height: 25px;"></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">尽管该书是很令人称赞的，但是我感觉还是把用户体验的相关书籍放在一起罗列推荐，对作者和读者才是公平的。</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">如果你是一个经验丰富的用户体验专业人员，那这些书籍中的大部分你一定听过。事实上，你可能已经读了，或者重复读过。但是我仍然希望能有您以前未曾听过后者读过的书籍。起码在别人问您类似问题的时候你能有所回复，比如：除了《 <span class="reference-title" style="margin: 0px; padding: 0px;"><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" href="http://www.amazon.com/gp/product/0321344758?ie=UTF8&amp;tag=ux-booth-20">Don’t Make Me Think</a>》以外还有其他入门级别的用户体验书籍吗？</span></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><span class="reference-title" style="margin: 0px; padding: 0px;">1，<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" href="http://www.amazon.com/gp/product/0321607376?ie=UTF8&amp;tag=ux-booth-20" target="_blank">《Project Guide to UX Design》</a></span></p>
<div style="margin: 0px; padding: 0px; border-width: 0px;">
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/project-guide-to-ux.jpg" alt="Book cover: A Project Guide to UX" /></p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">A Project Guide to UX Design.</p>
</div>
</div>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">最近我们在讨论对于<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" href="http://uxexchange.com/questions/66/what-book-would-you-recommend-as-a-decent-intro-to-ux-aimed-at-non-practitioner">UX Exchange</a> 入门新手来说的书籍的时候，该书是继《 <span class="reference-title" style="margin: 0px; padding: 0px;"><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" href="http://www.amazon.com/gp/product/0321344758?ie=UTF8&amp;tag=ux-booth-20">Don’t Make Me Think</a>》之后最受推荐的书籍。引用推荐人的原话：“该书是对用户体验设计师需要具备什么，</span>具有重大实践意义和易引导性，并且对于用户体验领域做了一个不错介绍”</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">我必须坦诚，至今我确实没读过该书，但是由于它确实很流行，我选择把它放在该列表的顶部推荐。据我了解，该书和其他书不在一个级别，它不只介绍给你设计的原则，也展示给你在一个项目进行中，如何有效的整合用户体验的原则。</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><strong style="margin: 0px; padding: 0px;">Book:</strong><span class="Apple-converted-space"> </span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0321607376?ie=UTF8&amp;tag=ux-booth-20">A Project Guide to UX Design (by Russ Unger and Carolyn Chandler)</a></p>
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;">2，《<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0735712026?ie=UTF8&amp;tag=ux-booth-20">The Elements of User Experience </a>》</div>
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/design-everyday-things.jpg" alt="Book cover: The Design of Everyday Things" /><br style="margin: 0px; padding: 0px;" /></p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">The Design of Everyday Things.</p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">如果没有该书，这个推荐列表就不算完整。尽管该书是以实物为重中心的，强调明白用户的需求和认知心理学的重要性，该书在怎样和为什么一些产品能满足用户需求而其他只让用户受伤方面是一本强大课本。</p>
</div>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><strong style="margin: 0px; padding: 0px;">Book:</strong><span class="Apple-converted-space"> </span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0465067107?ie=UTF8&amp;tag=ux-booth-20">The Design of Everyday Things (by Don Norman)</a></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">3,《<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0735712026?ie=UTF8&amp;tag=ux-booth-20">The Elements of User Experience</a>》</p>
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/elements-of-ux.jpg" alt="Book cover: The Elements of User Experience" /></p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">The Elements of User Experience.</p>
</div>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">用户体验的要素，这本大家应该很熟悉了，该书详细用图表和插图的形式介绍了以用户为中心的用户体验设计思想，而不只是工具和技术。Jesse James Garrett 提供用户体验开发的纵览，从战略和需求到信息架构和视觉设计。</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><strong style="margin: 0px; padding: 0px;">Book:</strong><span class="Apple-converted-space"> </span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0735712026?ie=UTF8&amp;tag=ux-booth-20">The Elements of User Experience (by Jesse James Garrett)</a></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">4, 《<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0321350316?ie=UTF8&amp;tag=ux-booth-20">Prioritizing Web Usability</a>》</p>
<div class="image-container large" style="margin: 0px; padding: 0px; border-width: 0px;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/prioritizing-usability.jpg" alt="My signed copy of Prioritizing Web Usability" /></p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">That’s right baby, I got my copy signed!</p>
<p>这本书还是之得一看的，它阐述了可用性价值方面东西。</p></div>
<div class="image-container large" style="margin: 0px; padding: 0px; border-width: 0px;">
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><strong style="margin: 0px; padding: 0px;">Book:</strong><span class="Apple-converted-space"> </span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0321350316?ie=UTF8&amp;tag=ux-booth-20">Prioritizing Web Usability (by Jakob Nielsen and Hoa Loranger)</a></p>
<p>5,《<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0123740371?ie=UTF8&amp;tag=ux-booth-20">Sketching User Experiences</a>》</div>
<div class="image-container large" style="margin: 0px; padding: 0px; border-width: 0px;">
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/sketching-ux.jpg" alt="Book cover: Sketching User Experiences " /></p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">Sketching User Experiences.</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">“通过Bill Buxton的引人思考的个人例子，可以激发其他更好的理解设计在他们自己公司的橘色”  &#8212;Bill Gates</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">根据<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://uxbookclub.org/doku.php?id=book_league_table">UX Book Club league table</a>（用户书籍排名表）Bill Buxton’的《<span class="reference-title" style="margin: 0px; padding: 0px;">Sketching UserExperiences》是全世界当前讨论最多的书，Jason Robb也推荐了他的文章</span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" href="http://www.uxbooth.com/blog/tools-for-sketching-user-experiences/">Tools for Sketching User Experiences</a>.勾勒用户体验的工具介绍”</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><strong style="margin: 0px; padding: 0px;">Book:</strong><span class="Apple-converted-space"> </span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0123740371?ie=UTF8&amp;tag=ux-booth-20">Sketching User Experiences (by Bill Buxton)</a></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">6，《<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0470084111?ie=UTF8&amp;tag=ux-booth-20">About Face 3</a>》</p>
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/about-face3.jpg" alt="Book cover: About Face 3" /></p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">About Face 3.</p>
</div>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">从开展用户研究来确定产品的使用的人物角色和场景，该书连同其它的书同时被包含在<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" href="http://www.nickfinck.com/blog/entry/nicks_top_user_experience_books">Nick Finck’s list of top UX books</a> 一文中。</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><strong style="margin: 0px; padding: 0px;">Book:</strong><span class="Apple-converted-space"> </span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0470084111?ie=UTF8&amp;tag=ux-booth-20">About Face 3 (by Alan Cooper, Robert Reimann and David Cronin)</a></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">7,《<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0465051367?ie=UTF8&amp;tag=ux-booth-20">Emotional Design</a>》</p>
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/emotional-design.jpg" alt="Book cover: Emotional Design" /></p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">Emotional Design.</p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">这是在该列表中包含的Don Norman的第二本书。情感设计相联系的深远影响,唤起情感对象。这是一本可以快速阅读的书籍，可以给你带来一次又一次的灵感和洞察力。</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><strong style="margin: 0px; padding: 0px;">Book:</strong><span class="Apple-converted-space"> </span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0465051367?ie=UTF8&amp;tag=ux-booth-20">Emotional Design (by Don Norman)</a></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">8,《<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0470185481?ie=UTF8&amp;tag=ux-booth-20">Handbook of Usability Testing</a>》</p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/handbook-usability-testing.jpg" alt="Book cover: Handbook of Usability Testing" /></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">该书给予了可用性测试的纵览，包含很多有用信息。</p>
<h3 style="margin: 5px 0px; padding: 0px; font-size: 16px; word-wrap: break-word;"><span class="Apple-style-span" style="margin: 0px; padding: 0px; font-size: medium;"><span class="Apple-style-span" style="margin: 0px; padding: 0px; font-size: 14px; font-weight: normal; line-height: 25px;"></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><strong style="margin: 0px; padding: 0px;">Book:</strong><span class="Apple-converted-space"> </span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0470185481?ie=UTF8&amp;tag=ux-booth-20">Handbook of Usability Testing (by Jeffrey Rubin and Dana Chisnell)</a></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">9,《<a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0321643399?ie=UTF8&amp;tag=ux-booth-20">Designing for Interaction</a>》</p>
<p></span></span></h3>
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;"><span class="Apple-style-span" style="margin: 0px; padding: 0px; font-size: medium;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/designing-for-interaction.jpg" alt="Book cover: Designing for Interaction" /></span></p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><span class="Apple-style-span" style="margin: 0px; padding: 0px; font-size: medium;">Designing for Interaction.</span></p>
</div>
<p><span class="Apple-style-span" style="margin: 0px; padding: 0px; font-size: medium;"> </span></p>
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;">进入用户体验专业设计师这个行业，你必须和交互设计师协同工作，为了更好的沟通和协同工作了解交互设计师必要的，该书是不错的交互设计的选择。</div>
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;">
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><strong style="margin: 0px; padding: 0px;">Book:</strong><span class="Apple-converted-space"> </span><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0321643399?ie=UTF8&amp;tag=ux-booth-20">Designing for Interaction (by Dan Saffer)</a></p>
</div>
</div>
</div>
</div>
<p></span><span class="Apple-style-span" style="margin: 0px; padding: 0px; line-height: 25px; color: #666666;">Building products and services that people interact with is the big challenge of the 21st century. Dan Saffer has done an amazing job synthesizing the chaos into an understandable, ordered reference that is a bookshelf must-have for anyone thinking of creating new designs.</span></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><cite style="margin: 0px; padding: 0px;">Jared Spool</cite></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;"><cite style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;" /></cite></p>
<p><span class="Apple-style-span" style="margin: 0px; padding: 0px; line-height: 25px;"></p>
<p style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">10,《<span class="Apple-style-span" style="margin: 0px; padding: 0px; line-height: 21px;"><a style="margin: 0px; padding: 0px; color: #004276; text-decoration: none;" rel="nofollow" href="http://www.amazon.com/gp/product/0321534921?ie=UTF8&amp;tag=ux-booth-20">Designing for the Social Web</a>》</span></p>
<div class="image-container small" style="margin: 0px; padding: 0px; border-width: 0px;"><img style="margin: 10px 0px; padding: 0px; border-width: 0px; border-style: none; vertical-align: middle; max-width: 630px; height: auto ! important;" src="http://uxbooth.s3.amazonaws.com/wp-content/uploads/2010/08/social-web.jpg" alt="Book cover: Designing for the Social Web" /></p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">Designing for the Social Web.</p>
<p class="caption" style="margin: 14px 0px; padding: 0px; font-size: 14px; word-wrap: break-word; line-height: 1.8; position: relative;">该书一个一本很容易读和发现一个很好的权衡理论和实践的建议。</p>
</div>
<p></span></span></span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.youmila.com/?feed=rss2&amp;p=926</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>兼容firefox &amp;&amp; chrome 的页面灰度  –8.15</title>
		<link>http://blog.youmila.com/?p=924</link>
		<comments>http://blog.youmila.com/?p=924#comments</comments>
		<pubDate>Sun, 15 Aug 2010 01:49:20 +0000</pubDate>
		<dc:creator>tianhua</dc:creator>
				<category><![CDATA[css+xhtml]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web前端share]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://blog.youmila.com/?p=924</guid>
		<description><![CDATA[8.15全国灾难日，对于互联网各公司相信有很多人忙于网页的灰度效果
ie直接加个滤镜就可解决我不做介绍，
相信很多人对firefox，chrome很头疼，其实很早就有解决方案，依赖js比如下面这篇文章：
http://james.padolsey.com/javascript/grayscaling-in-non-ie-browsers/
<span class="readmore"><a href="http://blog.youmila.com/?p=924" title="兼容firefox &#038;&#038; chrome 的页面灰度  –8.15" target="_blank">阅读全文——共341字</a></span>]]></description>
			<content:encoded><![CDATA[<p>8.15全国灾难日，对于互联网各公司相信有很多人忙于网页的灰度效果</p>
<p>ie直接加个滤镜就可解决我不做介绍，</p>
<p>相信很多人对firefox，chrome很头疼，其实很早就有解决方案，依赖js比如下面这篇文章：</p>
<p><a href="http://james.padolsey.com/javascript/grayscaling-in-non-ie-browsers/">http://james.padolsey.com/javascript/grayscaling-in-non-ie-browsers/</a></p>
<p>使用很简单：</p>
<p>1，下载<a href="http://james.padolsey.com/demos/grayscale/grayscale.js" target="_blank">grayscale.js文件</a></p>
<p>2，在页面header引入<code>&lt;</code><code>script</code> <code>type</code><code>=</code><code>"text/javascript"</code><code>src</code><code>=</code><code>"grayscale.js"</code><code>&gt;&lt;/</code><code>script</code><code>&gt;</code></p>
<p>3，实现全站gray，在页面onload事件中加入：</p>
<table>
<tbody>
<tr>
<td><code>grayscale(document.body);</code></td>
</tr>
</tbody>
</table>
<p>我觉得很有参考价值~推荐使用~，最后默哀致灾难中逝去的人~</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.youmila.com/?feed=rss2&amp;p=924</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sass – OOS – COMPASS – Lemonade’s CSS Sprites</title>
		<link>http://blog.youmila.com/?p=920</link>
		<comments>http://blog.youmila.com/?p=920#comments</comments>
		<pubDate>Fri, 13 Aug 2010 08:52:34 +0000</pubDate>
		<dc:creator>tianhua</dc:creator>
				<category><![CDATA[css+xhtml]]></category>
		<category><![CDATA[web前端share]]></category>
		<category><![CDATA[前端架构]]></category>
		<category><![CDATA[compass]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css sprite]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Lemonade]]></category>
		<category><![CDATA[oocss]]></category>
		<category><![CDATA[sass]]></category>
		<category><![CDATA[scss]]></category>
		<category><![CDATA[sprite]]></category>

		<guid isPermaLink="false">http://blog.youmila.com/?p=920</guid>
		<description><![CDATA[<p><br mce_bogus="1"></p>
]]></description>
			<content:encoded><![CDATA[<p>这两天看了蛮多的国外前端css开发高效的文章，在这里总结分享下：</p>
<p>这里列出一些关键字汇总：<a href="http://lesscss.org/">Less</a>,<a href="http://xcss.antpaw.org/">xCSS</a>,<a title="sass" href="http://sass-lang.com/">sass</a>,<a href="http://oocss.org/">OOCSS</a>,<a title="compass" href="http://compass-style.org/">compass</a>,<a title="Lemonade’s CSS Sprites" href="http://github.com/hagenburger/lemonade">Lemonade’s CSS Sprites</a></p>
<p>前面的3个都是css编程语言  （<a href="http://lesscss.org/">Less</a>,<a href="http://xcss.antpaw.org/">xCSS</a>,<a title="sass" href="http://sass-lang.com/">sass</a>）</p>
<p>&#8212; 没错css编程语言，因为css是个SB类型语言，不爽它的developer就发明了css的编程语言来让更智能舒适的编写css</p>
<p><a href="http://oocss.org/">OOCSS</a> 是面向对象css，是由Nicole first presented Object Oriented CSS at Web Directions North in Denver.</p>
<p><a href="http://oocss.org/">OOCSS</a> 有两个主要的原则：</p>
<ol>
<li>Separate structure and skin</li>
<li>Separate container and content</li>
</ol>
<p>详细的OOSS解释大家可以看这个原生ppt:<br />
<img style="visibility: hidden; width: 0px; height: 0px;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyODE2ODExMDM5OTQmcHQ9MTI4MTY4ODU1ODc*OCZwPTEwMTkxJmQ9c3NfZW1iZWQmZz*yJm89NmNlOGQyZGI1NTc4/NGJkMzgwNzhmOWQ3MjMwYWUxZDUmb2Y9MA==.gif" border="0" alt="" width="0" height="0" /></p>
<div id="__ss_990405" style="width: 425px;"><strong><a title="Object Oriented CSS" href="http://www.slideshare.net/stubbornella/object-oriented-css">Object Oriented CSS</a></strong><object id="__sse990405" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oocss-1233786987806904-3&amp;stripped_title=object-oriented-css" /><param name="name" value="__sse990405" /><param name="allowfullscreen" value="true" /><embed id="__sse990405" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=oocss-1233786987806904-3&amp;stripped_title=object-oriented-css" name="__sse990405" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/stubbornella">Nicole Sullivan</a>.</div>
<div style="padding: 5px 0 12px;"><a title="compass" href="http://compass-style.org/">compass</a> 是sass的一个工具，可以把css框架比如blueprint集成一起协作开发详细介绍看这里：<a href="http://compass-style.org/docs/">http://compass-style.org/docs/</a></div>
<div style="padding: 5px 0 12px;"><a title="Lemonade’s CSS Sprites" href="http://github.com/hagenburger/lemonade">Lemonade’s CSS Sprites</a> 目的是做为一个sprite 自动生成器，集成在sass/compass中使用每次编译后会自动生成对应sprite 以及对应css样式，关于它的详细介绍可以看<a title="lemonade介绍" href="http://www.hagenburger.net/BLOG/Lemonade-CSS-Sprites-for-Sass-Compass.html">这里</a>：</div>
<div style="padding: 5px 0 12px;">http://www.hagenburger.net/BLOG/Lemonade-CSS-Sprites-for-Sass-Compass.html</div>
<div style="padding: 5px 0 12px;">在提高css开发效率的方面，喜欢的同学可以关注这些文章：</div>
</div>
<p><strong>3 Steps to Make<br />
Better &amp; Faster<br />
Frontends<br />
With Sass/SCSS, Compass and Lemonade’s CSS Sprites</strong></p>
<h1><small>Sprites</small></h1>
<div><object width="420" height="360"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sass-scss-compass-lemonade-100703091111-phpapp02&amp;rel=0" /><embed type="application/x-shockwave-flash" width="420" height="360" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sass-scss-compass-lemonade-100703091111-phpapp02&amp;rel=0"></embed></object></div>
<p>另外关于他们性能比较也有参考文章：</p>
<h1><a href="http://screwlewse.com/2010/08/different-css-techniques-and-their-performance/">Different CSS techniques and their performance</a></h1>
<p>参考阅读文章链接：</p>
<p>http://www.screwlewse.com/labs/css-performance-test.php?format=long&amp;selector=%23</p>
<p>http://screwlewse.com/2010/07/dont-use-id-selectors-in-css/</p>
<p>http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#extend</p>
<p>http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/</p>
<p>http://compass-style.org/docs/</p>
<p>http://www.hagenburger.net/BLOG/3-Steps-to-Make-Better-And-Faster-Frontends.html</p>
<p>http://www.hagenburger.net/BLOG/Lemonade-CSS-Sprites-for-Sass-Compass.html</p>
<p>http://nex-3.com/posts/99-selector-inheritance-the-easy-way-introducing-extend</p>
<p>http://chriseppstein.github.com/blog/2010/08/02/sass-extend-challenge/</p>
<p>http://wiki.github.com/stubbornella/oocss/</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.youmila.com/?feed=rss2&amp;p=920</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用html5 的video标签嵌入视频 兼容i6+浏览器</title>
		<link>http://blog.youmila.com/?p=890</link>
		<comments>http://blog.youmila.com/?p=890#comments</comments>
		<pubDate>Wed, 11 Aug 2010 08:42:49 +0000</pubDate>
		<dc:creator>tianhua</dc:creator>
				<category><![CDATA[web前端share]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.youmila.com/?p=890</guid>
		<description><![CDATA[The Problem

&#60;video&#62; doesn&#8217;t work in old browsers
Browsers support different video codecs
<span class="readmore"><a href="http://blog.youmila.com/?p=890" title="用html5 的video标签嵌入视频 兼容i6+浏览器" target="_blank">阅读全文——共1667字</a></span>]]></description>
			<content:encoded><![CDATA[<div class="grid_4">
<h2>The Problem</h2>
<ul>
<li>&lt;video&gt; doesn&#8217;t work in old browsers</li>
<li>Browsers support different video codecs</li>
<li>Browsers have inconsistent player UI</li>
<li>H.264 doesn&#8217;t work in Firefox &amp; Opera  <small>Note: MediaElement.js also supports Ogg and WebM (even FLV and WMV) if you want to use multiple &lt;source&gt; elements</small></li>
</ul>
</div>
<div class="grid_4">
<h2>The Solution: MediaElement.js</h2>
<p>You use the &lt;video&gt; tag with one H.264 file <small>(you can also include Ogg or WebM, but you don&#8217;t need to)</small>. 			If the browser doesn&#8217;t support it, then  			MediaElement.js replaces &lt;video&gt; with either Silverlight or Flash 			and returns a wrapper object that matches the <a href="http://www.w3.org/TR/html5/video.html">HTML5 Media Element API</a>. This lets you code to  			MediaElement.js as if it were a native &lt;video&gt;.</p>
</div>
<div class="grid_4">
<h2>Better Still: MediaElementPlayer.js</h2>
<p>MediaElementPlayer.js uses MediaElement.js and jQuery to build the complete working 				player you see here. The <strong>same HTML/CSS controls</strong> show up for  everyone on any browser with any media type (use a single H.264 or  include WebM, Ogg, WMV, FLV). It even works on iPhones, iPads, and  Andriods.</p>
</div>
<div class="grid_4">
<h2>Browser support (using H.264)</h2>
<ul>
<li>Safari: native HTML5</li>
<li>Chrome: native HTML5</li>
<li>Internet Explorer 9: native HTML5</li>
<li>Internet Explorer 6,7,8: Silverlight/Flash</li>
<li>Firefox: Silverlight/Flash</li>
<li>Opera: Silverlight/Flash</li>
<li>iPhone, iPad: native HTML5</li>
<li>Andriod: native HTML5</li>
</ul>
<p><!--For FLV, all browsers get a Flash embed, and for  			WMV all browsers get a silverlight plugin. But you 			the developer still get to program against the HTML5 video API</p>
<p>--></p>
<div id="browsers"><img src="http://mediaelementjs.com/images/chrome.png" alt="Chrome" /> <img src="http://mediaelementjs.com/images/safari.png" alt="Safari" /> <img src="http://mediaelementjs.com/images/ie.png" alt="Internet Explorer" /> <img src="http://mediaelementjs.com/images/firefox.png" alt="Firefox" /> <img src="http://mediaelementjs.com/images/opera.png" alt="Opera" /><br />
<img src="http://mediaelementjs.com/images/ipad.png" alt="iPad" /> <img src="http://mediaelementjs.com/images/iphone.png" alt="iPhone" /> <img src="http://mediaelementjs.com/images/android.png" alt="Android" width="82" height="82" /></div>
</div>
<div class="grid_8">
<h2>The Code</h2>
<pre class="prettyprint"><span class="tag">&lt;script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"jquery.js"</span><span class="tag">&gt;&lt;/script&gt;</span><span class="pln">
</span><span class="tag">&lt;script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"mediaelement.js"</span><span class="tag">&gt;&lt;/script&gt;</span><span class="pln">
</span><span class="tag">&lt;script</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"mediaelementplayer.js"</span><span class="tag">&gt;&lt;/script&gt;</span><span class="pln">
</span><span class="tag">&lt;link</span><span class="pln"> </span><span class="atn">href</span><span class="pun">=</span><span class="atv">"mediaelementplayer.css"</span><span class="pln"> </span><span class="atn">rel</span><span class="pun">=</span><span class="atv">"Stylesheet"</span><span class="pln"> </span><span class="tag">/&gt;</span><span class="pln">

</span><span class="com">&lt;!-- Preferred: Use one H.264 file for everyone (with silverlight fallback) --&gt;</span><span class="pln">
</span><span class="tag">&lt;video</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"myfile.mp4"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"video/mp4"</span><span class="pln"> </span><span class="atn">width</span><span class="pun">=</span><span class="atv">"640"</span><span class="pln"> </span><span class="atn">height</span><span class="pun">=</span><span class="atv">"360"</span><span class="tag">&gt;&lt;/video&gt;</span><span class="pln">

</span><span class="com">&lt;!-- OR use multiple codecs, your choice --&gt;</span><span class="pln">
</span><span class="tag">&lt;video</span><span class="pln"> </span><span class="atn">width</span><span class="pun">=</span><span class="atv">"640"</span><span class="pln"> </span><span class="atn">height</span><span class="pun">=</span><span class="atv">"360"</span><span class="tag">&gt;</span><span class="pln">
        </span><span class="tag">&lt;source</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"myfile.mp4"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"video/mp4"</span><span class="pln"> </span><span class="tag">&gt;</span><span class="pln">
        </span><span class="tag">&lt;source</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"myfile.ogg"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"video/ogg"</span><span class="pln"> </span><span class="tag">&gt;</span><span class="pln">
        </span><span class="tag">&lt;source</span><span class="pln"> </span><span class="atn">src</span><span class="pun">=</span><span class="atv">"myfile.webm"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"video/webm"</span><span class="pln"> </span><span class="tag">&gt;</span><span class="pln">
</span><span class="tag">&lt;/video&gt;</span><span class="pln">

</span><span class="tag">&lt;script&gt;</span><span class="pln">
jQuery</span><span class="pun">(</span><span class="pln">document</span><span class="pun">).</span><span class="pln">ready</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">(</span><span class="pln">$</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        $</span><span class="pun">(</span><span class="str">'video'</span><span class="pun">).</span><span class="pln">mediaelementplayer</span><span class="pun">();</span><span class="pln">
</span><span class="pun">});</span><span class="pln">
</span><span class="tag">&lt;/script&gt;</span><span class="pln">
                        </span></pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.youmila.com/?feed=rss2&amp;p=890</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Cache Provider</title>
		<link>http://blog.youmila.com/?p=860</link>
		<comments>http://blog.youmila.com/?p=860#comments</comments>
		<pubDate>Fri, 09 Jul 2010 07:06:14 +0000</pubDate>
		<dc:creator>tianhua</dc:creator>
				<category><![CDATA[小憩随笔]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[原文 ：http://www.dustindiaz.com/javascript-cache-provider
javascript  缓存提供程序

2010.7.6
<span class="readmore"><a href="http://blog.youmila.com/?p=860" title="JavaScript Cache Provider" target="_blank">阅读全文——共3270字</a></span>]]></description>
			<content:encoded><![CDATA[<p>原文 ：http://www.dustindiaz.com/javascript-cache-provider</p>
<h2><a href="http://www.dustindiaz.com/javascript-cache-provider/">javascript  缓存提供程序<br />
</a></h2>
<p>2010.7.6</p>
<p>相 信每一个开发者都知道缓存的重要性。从头至尾有缓存的后台(memcached,xcache等。)  来减轻db的压力。对内容分发网络（CDN）缓存中希望你的浏览器缓存那些不止一次的加载资源。当然,  有客户端缓存,所以你不要重复昂贵的操作(即使是算法或大量的运算)。</p>
<p>这是介绍的是一个不错的javascript的方面的客 户端解决方案,<a href="http://dev.w3.org/html5/webstorage/">可选配支持HTML5本地存储器</a>.</p>
<h3>Starting Simple</h3>
<pre><code>function CacheProvider() {
   // values will be stored here
   this._cache = {};
 }</code></pre>
<h3>Feature detect on local storage</h3>
<pre><code>try {
   CacheProvider.hasLocalStorage = ('localStorage' in window) &amp;&amp; window['localStorage'] !== null;
 } catch (ex) {
   CacheProvider.hasLocalStorage = false;
 </code></pre>
<p><code> }</code></p>
<p><code>这里使用try catch的主要原因是  尽管firefox支持该属性，但是需要在about:config中设置并开启，否则将会报错。所以一个简单的if else不能满足需求。</code></p>
<p><code>下面我们将增加对象本地存储机制的支持。这个技术是借鉴了</code>Christopher Blizzard的一篇不错的文章  <a href="http://hacks.mozilla.org/2009/06/localstorage/">Saving data  with local storage</a> – for which those who didn’t know, you can <strong>only</strong> store <code>string</code>’s into local storage. Thus we have this…</p>
<h3>in / out JSON parsing</h3>
<pre><code>if (CacheProvider.hasLocalStorage) {
   Storage.prototype.setObject = function(key, value) {
     this.setItem(key, JSON.stringify(value));
   };

   Storage.prototype.getObject = function(key) {
     return JSON.parse(this.getItem(key));
   };
 }</code></pre>
<p>现 在就到了我们的三个核心方法了，分别是 get, set, 和clear.</p>
<h3>Core class  functionality</h3>
<pre><code>CacheProvider.prototype = {

   /**
      * {String} k - the key
      * {Boolean} local - get this from local storage?
      * {Boolean} o - is the value you put in local storage an object?
      */
   get: function(k, local, o) {
     if (local &amp;&amp; CacheProvider.hasLocalStorage) {
       var action = o ? 'getObject' : 'getItem';
       return localStorage[action](k) || undefined;
     } else {
       return this._cache[k] || undefined;
     }
   },

   /**
      * {String} k - the key
      * {Object} v - any kind of value you want to store
      * however only objects and strings are allowed in local storage
      * {Boolean} local - put this in local storage
      */
   set: function(k, v, local) {
     if (local &amp;&amp; CacheProvider.hasLocalStorage) {
       if (typeof v !== 'string')) {
         // make assumption if it's not a string, then we're storing an object
         localStorage.setObject(k, v);
       } else {
         try {
           localStorage.setItem(k, v);
         } catch (ex) {
           if (ex.name == 'QUOTA_EXCEEDED_ERR') {
             // developer needs to figure out what to start invalidating
             throw new Exception(v);
             return;
           }
         }
       }
     } else {
       // put in our local object
       this._cache[k] = v;
     }
     // return our newly cached item
     return v;
   },

   /**
      * {String} k - the key
      * {Boolean} local - put this in local storage
      * {Boolean} o - is this an object you want to put in local storage?
      */
   clear: function(k, local, o) {
     if (local &amp;&amp; CacheProvider.hasLocalStorage) {
       localStorage.removeItem(k);
     }
     // delete in both caches - doesn't hurt.
     delete this._cache[k];
   }

 };</code></pre>
<h3>如 何运用？</h3>
<p>注意在这篇文章的开始，就说了Cache Provider 是可选支配的本地存储，首先然让我们看一个没有本地存储的例子：</p>
<h3>getElementsByClassName</h3>
<pre><code>var cache = new CacheProvider;

 window.getElementsByClassName = getElementsByClassName || function(c) {
   var reg = cache.get(c) || cache.set(c, new RegExp("(?:^|s+)" + c + "(?:s+|$)"));
   var elements = document.getElementsByTagName('*');
   var results = [];
   for (var i = 0; i &lt; elements.length; i++) {
     if (elements[i].className.match(reg)) {
       results.push(elements[i]);
     }
   }
   return results;
 </code></pre>
<p><code> };</code></p>
<p><code>备注：下次你调用类函数的时候， 将会用预先编译好的正则表达式替代够建造一个表达式。<br />
</code></p>
<p>再举一个例子：比如 对于大的应用程序需要i18n，你可以缓存一个编译好的html字符串进入本地存储中。</p>
<pre><code>var i18nCache = new CacheProvider;

 if (i18nCache.get('topnav')) {
   $('#nav').html(i18nCache.get('topnav'));
 } else {
   ajax('top-nav.tmpl', function(html) {
     i18nCache.set('topnav', html);
     $('#nav').html(i18nCache.get('topnav'));
   });
 }</code></pre>
<p>除 此之外，你开可以做很多外部资源缓存到本地的事情，加油:)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.youmila.com/?feed=rss2&amp;p=860</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
