<?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://get2know.it/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://get2know.it</link>
	<description>温故而知新，可以为师矣</description>
	<lastBuildDate>Fri, 22 Jan 2010 18:29:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>读错的两个单词（drawer,spam）</title>
		<link>http://get2know.it/?p=69</link>
		<comments>http://get2know.it/?p=69#comments</comments>
		<pubDate>Fri, 22 Jan 2010 18:29:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[英语]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=69</guid>
		<description><![CDATA[draw.spam
]]></description>
			<content:encoded><![CDATA[<p><a href='http://get2know.it/wp-content/uploads/2010/01/draw.spam_.mp3'>draw.spam</a></p>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=69</wfw:commentRss>
		<slash:comments>3813</slash:comments>
<enclosure url="http://get2know.it/wp-content/uploads/2010/01/draw.spam_.mp3" length="230713" type="audio/mpeg" />
		</item>
		<item>
		<title>复习oracle中的dbms_job包</title>
		<link>http://get2know.it/?p=57</link>
		<comments>http://get2know.it/?p=57#comments</comments>
		<pubDate>Sat, 26 Dec 2009 17:28:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[plsql]]></category>
		<category><![CDATA[dbms_job]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[scheduling]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=57</guid>
		<description><![CDATA[oracle中的DBMS_JOB包提供了定时周期性执行job队列中的job的功能，虽然它在oracle11g中已经被DBMS_SCHEDULER所取代，但是因为很多legacy application中还是大量地用到了它，所以在这里复习一下。
DBMS_JOB.SUBMIT用来提交一个job到job队列中，用法如下所示：
1234567891011DECLARE
&#160; &#160; X &#160; NUMBER;
BEGIN
&#160; &#160; SYS.DBMS_JOB.SUBMIT &#40;
&#160; &#160; &#160; &#160; job &#160; &#160; &#160; &#160; =&#62; X,
&#160; &#160; &#160; &#160; what &#160; &#160; &#160; &#160;=&#62; 'SYSTEM.INSERTDATE;',
&#160; &#160; &#160; &#160; next_date &#160; =&#62; SYSDATE,
&#160; &#160; &#160; &#160; INTERVAL &#160; &#160;=&#62; 'SYSDATE+0.1/(24*60)'
&#160; &#160; &#41;;
&#160; &#160; COMMIT;
END;
其中job是一个out类型的参数，它返回的是一个具体job的id，以后可以通过这个id来引用job对它进行进一步的操作。
what指定要执行的任务，注意它是VARCHAR2类型的，要写在单引号中，另外注意单引号中的分号。
next_date指明了当你把job submit到job队列中后这个job什么时候开始第一次执行，如果是SYSDATE，那么说明当job一被提交到job队列中就立刻开始第一次执行。
INTERVAL的类型是VARCHAR2，它在每次job将要执行之前被重新计算，计算得到的结果会被赋给next_date，指明了job下一次被执行的时间。下面是几个interval的例子：

	TRUNC(SYSDATE+1)         [...]]]></description>
			<content:encoded><![CDATA[<p>oracle中的DBMS_JOB包提供了定时周期性执行job队列中的job的功能，虽然它在oracle11g中已经被DBMS_SCHEDULER所取代，但是因为很多legacy application中还是大量地用到了它，所以在这里复习一下。</p>
<p>DBMS_JOB.SUBMIT用来提交一个job到job队列中，用法如下所示：</p>
<div class="codecolorer-container plsql dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td><div class="plsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00F;">DECLARE</span><br />
&nbsp; &nbsp; X &nbsp; <span style="color: #00F;">NUMBER</span><span style="color: #00F;">;</span><br />
<span style="color: #00F;">BEGIN</span><br />
&nbsp; &nbsp; SYS<span style="color: #00F;">.</span><span style="color: #00F;">DBMS_JOB</span><span style="color: #00F;">.</span>SUBMIT <span style="color: #00F;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; job &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00F;">=&gt;</span> X<span style="color: #00F;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; what &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #00F;">=&gt;</span> <span style="color: #F00;">'SYSTEM.INSERTDATE;'</span><span style="color: #00F;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; next_date &nbsp; <span style="color: #00F;">=&gt;</span> <span style="color: #000;">SYSDATE</span><span style="color: #00F;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00F;">INTERVAL</span> &nbsp; &nbsp;<span style="color: #00F;">=&gt;</span> <span style="color: #F00;">'SYSDATE+0.1/(24*60)'</span><br />
&nbsp; &nbsp; <span style="color: #00F;">&#41;</span><span style="color: #00F;">;</span><br />
&nbsp; &nbsp; <span style="color: #00F;">COMMIT</span><span style="color: #00F;">;</span><br />
<span style="color: #00F;">END</span><span style="color: #00F;">;</span></div></td></tr></tbody></table></div>
<p>其中job是一个out类型的参数，它返回的是一个具体job的id，以后可以通过这个id来引用job对它进行进一步的操作。<br />
what指定要执行的任务，注意它是VARCHAR2类型的，要写在单引号中，另外注意单引号中的分号。<br />
next_date指明了当你把job submit到job队列中后这个job什么时候开始第一次执行，如果是SYSDATE，那么说明当job一被提交到job队列中就立刻开始第一次执行。<br />
INTERVAL的类型是VARCHAR2，它在每次job将要执行之前被重新计算，计算得到的结果会被赋给next_date，指明了job下一次被执行的时间。下面是几个interval的例子：</p>
<pre>
	TRUNC(SYSDATE+1)                       每天的零点
	TRUNC(SYSDATE+7)                       每过七天后的第一个零点
	NEXT_DAY(TRUNC(SYSDATE), 'SUNDAY')     每个星期天的零点
	TRUNC(SYSDATE+1)+6/24                  每天的早上六点
	SYSDATE+30/1440                        每三十分钟
	SYSDATE+1/(24*60)                      每一分钟
</pre>
<p>如果要改变一个job的属性，可以用DBMS_JOB.CHANGE这个方法，如下所示：</p>
<div class="codecolorer-container plsql dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="plsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00F;">BEGIN</span><br />
&nbsp; &nbsp; <span style="color: #00F;">DBMS_JOB</span><span style="color: #00F;">.</span>CHANGE <span style="color: #00F;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; job &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00F;">=&gt;</span> <span style="color: #800;">70</span><span style="color: #00F;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; what &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #00F;">=&gt;</span> <span style="color: #F00;">'SYSTEM.INSERTDATE;'</span><span style="color: #00F;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; next_date &nbsp; <span style="color: #00F;">=&gt;</span> <span style="color: #000;">SYSDATE</span><span style="color: #00F;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #00F;">INTERVAL</span> &nbsp; &nbsp;<span style="color: #00F;">=&gt;</span> <span style="color: #F00;">'SYSDATE+0.5/(24*60)'</span><br />
&nbsp; &nbsp; <span style="color: #00F;">&#41;</span><span style="color: #00F;">;</span><br />
&nbsp; &nbsp; <span style="color: #00F;">COMMIT</span><span style="color: #00F;">;</span><br />
<span style="color: #00F;">END</span><span style="color: #00F;">;</span></div></td></tr></tbody></table></div>
<p>其中what, next_date, interval可以是null, 表示延用以前设定的值。</p>
<p>如果想让一个你设定好定时执行的时job临时停止执行，可以使用DBMS_JOB.BROKEN这个方法，它可以设定job的broken标记。如下例所示，把id为72的job的状态为broken，这个它就永远不会再执行了。</p>
<div class="codecolorer-container plsql dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="plsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00F;">BEGIN</span><br />
&nbsp; &nbsp; <span style="color: #00F;">DBMS_JOB</span><span style="color: #00F;">.</span>BROKEN <span style="color: #00F;">&#40;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; job &nbsp; &nbsp; &nbsp; <span style="color: #00F;">=&gt;</span> 72<span style="color: #00F;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; broken &nbsp; &nbsp;<span style="color: #00F;">=&gt;</span> <span style="color: #00F;">TRUE</span><span style="color: #00F;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; next_date <span style="color: #00F;">=&gt;</span> <span style="color: #000;">SYSDATE</span><br />
&nbsp; &nbsp; <span style="color: #00F;">&#41;</span><span style="color: #00F;">;</span><br />
&nbsp; &nbsp; <span style="color: #00F;">COMMIT</span><span style="color: #00F;">;</span><br />
<span style="color: #00F;">END</span><span style="color: #00F;">;</span></div></td></tr></tbody></table></div>
<p>想要把一个job从job队列中移除（相当于删除它），可以用DBMS_JOB.REMOVE方法，如下所示：</p>
<div class="codecolorer-container plsql dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="plsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00F;">BEGIN</span><br />
&nbsp; &nbsp; <span style="color: #00F;">DBMS_JOB</span><span style="color: #00F;">.</span>REMOVE<span style="color: #00F;">&#40;</span>72<span style="color: #00F;">&#41;</span><span style="color: #00F;">;</span><br />
&nbsp; &nbsp; <span style="color: #00F;">COMMIT</span><span style="color: #00F;">;</span><br />
<span style="color: #00F;">END</span><span style="color: #00F;">;</span></div></td></tr></tbody></table></div>
<p>如果一个job的预定执行时间还没有到，而你想让它立刻执行，那么你可以用DBMS_JOB.RUN方法，它甚至可以让状态为broken的job立刻执行，如下所示：</p>
<div class="codecolorer-container plsql dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="plsql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00F;">BEGIN</span><br />
&nbsp; &nbsp; <span style="color: #00F;">DBMS_JOB</span><span style="color: #00F;">.</span>RUN<span style="color: #00F;">&#40;</span>71<span style="color: #00F;">&#41;</span><span style="color: #00F;">;</span><br />
<span style="color: #00F;">END</span><span style="color: #00F;">;</span></div></td></tr></tbody></table></div>
<p>查询job队列中有哪些job可以用下面的语句，注意要想对dba_jobs做查询，用户要有在SYS.DBA_JOBS上SELECT的权限。</p>
<div class="codecolorer-container sql dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> &nbsp; <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> dba_jobs;</div></td></tr></tbody></table></div>
<p>同样oracle也提供了一个view可以查看有哪些job是正在运行中的，如下：</p>
<div class="codecolorer-container sql dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> dba_jobs_running;</div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=57</wfw:commentRss>
		<slash:comments>1534</slash:comments>
		</item>
		<item>
		<title>重置元素的CSS样式来解决浏览器的不兼容性</title>
		<link>http://get2know.it/?p=54</link>
		<comments>http://get2know.it/?p=54#comments</comments>
		<pubDate>Tue, 22 Dec 2009 06:33:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[reset]]></category>
		<category><![CDATA[style]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=54</guid>
		<description><![CDATA[我们知道，不同的浏览器显示同一个网页总会或多或少有些差异，事实上所有的浏览器都是不一样的，其实大家如果可以想到，不同的浏览器是由不同的公司，不同的人，不同的开发工具，不同的语言来写出来的，那大家都可以理解这些差异了。一个段落标记p在不同的浏览器中它的默认margin、padding和font-size分别是多少？如果你研究一下你会很吃惊的，因为不同的浏览器相差很大。要处理这些浏览器间的差异，你可以使用CSS reset style来重置HTML元素到一个统一的初始样式，然后在此基础上进行定制。
早期人们为了对付浏览器间margin、padding和border的差异，我们经常能看到下面这个CSS规则：
12345* &#123;
&#160; &#160; margin: 0;
&#160; &#160; padding: 0;
&#160; &#160; border: 0;
&#125;
这条规则对每一个元素都要设定其样式，所以它对浏览器的性能影响比较大。随着人们进一步地研究讨论，Eric Meyer和其它一些CSS牛人创建了一套更完整，效果更好的CSS reset style：
123456789101112131415161718192021222324252627282930313233343536373839404142434445html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, [...]]]></description>
			<content:encoded><![CDATA[<p>我们知道，不同的浏览器显示同一个网页总会或多或少有些差异，事实上所有的浏览器都是不一样的，其实大家如果可以想到，不同的浏览器是由不同的公司，不同的人，不同的开发工具，不同的语言来写出来的，那大家都可以理解这些差异了。一个段落标记p在不同的浏览器中它的默认margin、padding和font-size分别是多少？如果你研究一下你会很吃惊的，因为不同的浏览器相差很大。要处理这些浏览器间的差异，你可以使用CSS reset style来重置HTML元素到一个统一的初始样式，然后在此基础上进行定制。<br />
早期人们为了对付浏览器间margin、padding和border的差异，我们经常能看到下面这个CSS规则：</p>
<div class="codecolorer-container css dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00AA00;">*</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>这条规则对每一个元素都要设定其样式，所以它对浏览器的性能影响比较大。随着人们进一步地研究讨论，Eric Meyer和其它一些CSS牛人创建了一套更完整，效果更好的CSS reset style：</p>
<div class="codecolorer-container css dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:400px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">html<span style="color: #00AA00;">,</span> body<span style="color: #00AA00;">,</span> div<span style="color: #00AA00;">,</span> span<span style="color: #00AA00;">,</span> applet<span style="color: #00AA00;">,</span> object<span style="color: #00AA00;">,</span> iframe<span style="color: #00AA00;">,</span><br />
h1<span style="color: #00AA00;">,</span> h2<span style="color: #00AA00;">,</span> h3<span style="color: #00AA00;">,</span> h4<span style="color: #00AA00;">,</span> h5<span style="color: #00AA00;">,</span> h6<span style="color: #00AA00;">,</span> p<span style="color: #00AA00;">,</span> blockquote<span style="color: #00AA00;">,</span> pre<span style="color: #00AA00;">,</span><br />
a<span style="color: #00AA00;">,</span> abbr<span style="color: #00AA00;">,</span> acronym<span style="color: #00AA00;">,</span> address<span style="color: #00AA00;">,</span> big<span style="color: #00AA00;">,</span> cite<span style="color: #00AA00;">,</span> code<span style="color: #00AA00;">,</span><br />
del<span style="color: #00AA00;">,</span> dfn<span style="color: #00AA00;">,</span> em<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">,</span> img<span style="color: #00AA00;">,</span> ins<span style="color: #00AA00;">,</span> kbd<span style="color: #00AA00;">,</span> q<span style="color: #00AA00;">,</span> s<span style="color: #00AA00;">,</span> samp<span style="color: #00AA00;">,</span><br />
small<span style="color: #00AA00;">,</span> strike<span style="color: #00AA00;">,</span> strong<span style="color: #00AA00;">,</span> sub<span style="color: #00AA00;">,</span> sup<span style="color: #00AA00;">,</span> tt<span style="color: #00AA00;">,</span> var<span style="color: #00AA00;">,</span><br />
dl<span style="color: #00AA00;">,</span> dt<span style="color: #00AA00;">,</span> dd<span style="color: #00AA00;">,</span> ol<span style="color: #00AA00;">,</span> ul<span style="color: #00AA00;">,</span> li<span style="color: #00AA00;">,</span> fieldset<span style="color: #00AA00;">,</span> form<span style="color: #00AA00;">,</span> label<span style="color: #00AA00;">,</span> legend<span style="color: #00AA00;">,</span><br />
table<span style="color: #00AA00;">,</span> caption<span style="color: #00AA00;">,</span> tbody<span style="color: #00AA00;">,</span> tfoot<span style="color: #00AA00;">,</span> thead<span style="color: #00AA00;">,</span> tr<span style="color: #00AA00;">,</span> th<span style="color: #00AA00;">,</span> td <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inherit</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inherit</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inherit</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">baseline</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<span style="color: #808080; font-style: italic;">/* remember to define focus styles! */</span><br />
<span style="color: #3333ff;">:focus </span><span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
body <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
ol<span style="color: #00AA00;">,</span> ul <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<span style="color: #808080; font-style: italic;">/* tables still need 'cellspacing=&quot;0&quot;' in the markup */</span><br />
table <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border-collapse</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">separate</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">border-spacing</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
caption<span style="color: #00AA00;">,</span> th<span style="color: #00AA00;">,</span> td <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
blockquote<span style="color: #3333ff;">:before</span><span style="color: #00AA00;">,</span> blockquote<span style="color: #3333ff;">:after</span><span style="color: #00AA00;">,</span><br />
q<span style="color: #3333ff;">:before</span><span style="color: #00AA00;">,</span> q<span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
blockquote<span style="color: #00AA00;">,</span> q <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">quotes</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>如果你想要进一步了解Eric Meyer的CSS reset style，可以点击<a href="http://www.noupe.com/css/css-techniques-i-wish-i-knew-when-i-started-designing-websites.html" target="_blank">这里</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=54</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用Google的jsapi确定客户端所在的位置</title>
		<link>http://get2know.it/?p=49</link>
		<comments>http://get2know.it/?p=49#comments</comments>
		<pubDate>Sun, 20 Dec 2009 15:28:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascripit]]></category>
		<category><![CDATA[location]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=49</guid>
		<description><![CDATA[Google的jsapi提供了许多有用的功能，其中有一个就是对客户端的检测，用很简单的几句Javascript就可以确定浏览者的地理位置，从而可以进一步做有针对性的处理。下面是一个示例：
1234567891011121314151617181920&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34;
&#160; &#160; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&#62;
&#60;html&#62;
&#60;head&#62;
&#60;meta http-equiv=&#34;Content-type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62;
&#60;title&#62;Google API Test&#60;/title&#62;
&#60;/head&#62;
&#60;body&#62;

&#60;script src=&#34;http://www.google.com/jsapi&#34; language=&#34;javascript&#34;&#62;&#60;/script&#62;
&#60;script language=&#34;javascript&#34;&#62;
&#160; &#160; if (google.loader.ClientLocation != null) {
&#160; &#160; &#160; &#160; document.write(&#34;您的位置是： &#34; + google.loader.ClientLocation.address.city
&#160; &#160; &#160; &#160; + &#34;，&#34; + google.loader.ClientLocation.address.region);
&#160; &#160; } else {
&#160; &#160; &#160; &#160; document.write(&#34;Google无法确定你的位置&#34;);
&#160; &#160; }
&#60;/script&#62;
&#60;/body&#62;
&#60;/html&#62;
打开上面的网页，我得到的结果是：
您的位置是： Xi'an，Shaanxi
]]></description>
			<content:encoded><![CDATA[<p>Google的jsapi提供了许多有用的功能，其中有一个就是对客户端的检测，用很简单的几句Javascript就可以确定浏览者的地理位置，从而可以进一步做有针对性的处理。下面是一个示例：</p>
<div class="codecolorer-container html4strict dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00bbdd;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span style="color: #00bbdd;">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Content-type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">title</span>&gt;</span>Google API Test<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">title</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<br />
<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;">&quot;http://www.google.com/jsapi&quot;</span> <span style="color: #000066;">language</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;javascript&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">language</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;javascript&quot;</span>&gt;</span><br />
&nbsp; &nbsp; if (google.loader.ClientLocation != null) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; document.write(&quot;您的位置是： &quot; + google.loader.ClientLocation.address.city<br />
&nbsp; &nbsp; &nbsp; &nbsp; + &quot;，&quot; + google.loader.ClientLocation.address.region);<br />
&nbsp; &nbsp; } else {<br />
&nbsp; &nbsp; &nbsp; &nbsp; document.write(&quot;Google无法确定你的位置&quot;);<br />
&nbsp; &nbsp; }<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></div></td></tr></tbody></table></div>
<p>打开上面的网页，我得到的结果是：<br />
<code class="codecolorer text default"><span class="text">您的位置是： Xi'an，Shaanxi</span></code></p>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=49</wfw:commentRss>
		<slash:comments>18344</slash:comments>
		</item>
		<item>
		<title>使用jQuery提升链接在IE中的显示效果</title>
		<link>http://get2know.it/?p=33</link>
		<comments>http://get2know.it/?p=33#comments</comments>
		<pubDate>Fri, 18 Dec 2009 09:57:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[link]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=33</guid>
		<description><![CDATA[在平时浏览网页时，我们免不了要天天点击链接，在点击链接时我想大家都能看到在链接周围那条点点组成的边框吧，如果你点了这个链接而这个链接把你带到了另外一个页面还好，如果它只是想触发一个事件而不把你带到另外一个页面，那么这个点点连成的四四方方的边框就一直显示在那里，看上去真是好丑。当然如果你很幸运地一直在使用一个对CSS支持的比较好的浏览器（比如我天天在用的Firefox），那么你可以用很简单的一条CSS规则就可以去掉这个难看的框框：
123a:focus, a:active &#123;
&#160; &#160; outline:none;
&#125;
如果你因为各种原因很不幸地还在使用IE 6或者更早的浏览器（有这样的人么？），那么你可以利用jQuery轻松地帮你解决这个问题：
123$&#40;&#34;a&#34;&#41;.click&#40;function&#40;&#41; &#123;
&#160; &#160; $&#40;this&#41;.blur&#40;&#41;;
&#125;&#41;;
上面的代码会在你点击链接之后移除那个框框，当然在你点击链接的时候这个框框还是会出现的，如果你想要在点击的时候这个框框也不出现，那么你可以稍微修改一下上面的代码，把click事件变成focus事件，如下：
123$&#40;&#34;a&#34;&#41;.focus&#40;function&#40;&#41; &#123;
&#160; &#160; $&#40;this&#41;.blur&#40;&#41;;
&#125;&#41;;
希望这个对您有用:-)
]]></description>
			<content:encoded><![CDATA[<p>在平时浏览网页时，我们免不了要天天点击链接，在点击链接时我想大家都能看到在链接周围那条点点组成的边框吧，如果你点了这个链接而这个链接把你带到了另外一个页面还好，如果它只是想触发一个事件而不把你带到另外一个页面，那么这个点点连成的四四方方的边框就一直显示在那里，看上去真是好丑。当然如果你很幸运地一直在使用一个对CSS支持的比较好的浏览器（比如我天天在用的Firefox），那么你可以用很简单的一条CSS规则就可以去掉这个难看的框框：</p>
<div class="codecolorer-container css dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">a<span style="color: #3333ff;">:focus</span><span style="color: #00AA00;">,</span> a<span style="color: #3333ff;">:active </span><span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>如果你因为各种原因很不幸地还在使用IE 6或者更早的浏览器（有这样的人么？），那么你可以利用jQuery轻松地帮你解决这个问题：</p>
<div class="codecolorer-container javascript dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">blur</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>上面的代码会在你点击链接之后移除那个框框，当然在你点击链接的时候这个框框还是会出现的，如果你想要在点击的时候这个框框也不出现，那么你可以稍微修改一下上面的代码，把click事件变成focus事件，如下：</p>
<div class="codecolorer-container javascript dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;a&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">focus</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066;">blur</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>希望这个对您有用:-)</p>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=33</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ruby语言中的Enumerable::inject方法</title>
		<link>http://get2know.it/?p=30</link>
		<comments>http://get2know.it/?p=30#comments</comments>
		<pubDate>Fri, 18 Dec 2009 09:34:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ruby & Rails]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[inject]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=30</guid>
		<description><![CDATA[在使用一组数据的过程中（比如说数组），我们可能经常需要遍历其中的每一个元素，拿着每一个元素做些计算并收集这些计算结果，比如像下面这个数组：
1nums = &#91;1, 3, 5, 7&#93;
如果你想计算数组中所有元素的和，那么我们可以使用each方法，像下面这样：
12sum = 0
nums.each &#123; &#124;n&#124; sum += n &#125;
这样子做是可以正常工作的，但是ruby提供了更灵活的inject方法，点这里查看（Enumerable::inject）
1sum = nums.inject&#40;0&#41; &#123; &#124;x,n&#124; x+n &#125;
上面这做对代码也可以计算出同样的值，但是它是用inject方法。Inject是通过一个accumulator来完成收集值的过程的，在上面代码中accumulator是x。inject的每一步中，上一次block执行的结果会被赋值给下一次block执行时的accumulator。在这里我们是把accumulator的初始值设定成了0，每一步中当前遍历的元素的值被加到了accumulator上。
如果省略了inject方法的参数，那么accumulator的初始值则是数组中的第一个元素，紧接着的遍历过程则从数组中第二个元素开始（下标为1），比如：
1sum = nums.inject &#123; &#124;x,n&#124; x+n &#125;
它和下面代码完成的事情是一样的：
12sum = nums&#91;0&#93;
nums&#91;1..-1&#93;.each &#123; &#124;n&#124; sum += n &#125;
我们再看一个例子，假设我们有五个名子组成的数组：
1names = &#91;&#34;edde&#34;, &#34;rita&#34;, &#34;guapo&#34;, &#34;andy&#34;, &#34;ash&#34;&#93;
下面的代码：
1string = names.inject&#40;&#34;&#34;&#41; &#123; &#124;x,n&#124; x &#60;&#60; &#34;#{n} &#34; &#125;
将会输出：
1&#34;edde rita guapo andy ash &#34;
当然你也可以通过这样的代码来得到同样的结果：
12string = [...]]]></description>
			<content:encoded><![CDATA[<p>在使用一组数据的过程中（比如说数组），我们可能经常需要遍历其中的每一个元素，拿着每一个元素做些计算并收集这些计算结果，比如像下面这个数组：</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">nums = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span>, <span style="color:#006666;">3</span>, <span style="color:#006666;">5</span>, <span style="color:#006666;">7</span><span style="color:#006600; font-weight:bold;">&#93;</span></div></td></tr></tbody></table></div>
<p>如果你想计算数组中所有元素的和，那么我们可以使用each方法，像下面这样：</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sum = 0<br />
nums.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>n<span style="color:#006600; font-weight:bold;">|</span> sum <span style="color:#006600; font-weight:bold;">+</span>= n <span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>这样子做是可以正常工作的，但是ruby提供了更灵活的inject方法，点这里查看（<a href="http://www.ruby-doc.org/core/classes/Enumerable.html#M003171">Enumerable::inject</a>）</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sum = nums.<span style="color:#9900CC;">inject</span><span style="color:#006600; font-weight:bold;">&#40;</span>0<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>x,n<span style="color:#006600; font-weight:bold;">|</span> x<span style="color:#006600; font-weight:bold;">+</span>n <span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>上面这做对代码也可以计算出同样的值，但是它是用inject方法。Inject是通过一个accumulator来完成收集值的过程的，在上面代码中accumulator是x。inject的每一步中，上一次block执行的结果会被赋值给下一次block执行时的accumulator。在这里我们是把accumulator的初始值设定成了0，每一步中当前遍历的元素的值被加到了accumulator上。</p>
<p>如果省略了inject方法的参数，那么accumulator的初始值则是数组中的第一个元素，紧接着的遍历过程则从数组中第二个元素开始（下标为1），比如：</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sum = nums.<span style="color:#9900CC;">inject</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>x,n<span style="color:#006600; font-weight:bold;">|</span> x<span style="color:#006600; font-weight:bold;">+</span>n <span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>它和下面代码完成的事情是一样的：</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sum = nums<span style="color:#006600; font-weight:bold;">&#91;</span>0<span style="color:#006600; font-weight:bold;">&#93;</span><br />
nums<span style="color:#006600; font-weight:bold;">&#91;</span>1..<span style="color:#006600; font-weight:bold;">-</span>1<span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>n<span style="color:#006600; font-weight:bold;">|</span> sum <span style="color:#006600; font-weight:bold;">+</span>= n <span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>我们再看一个例子，假设我们有五个名子组成的数组：</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">names = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;edde&quot;</span>, <span style="color:#996600;">&quot;rita&quot;</span>, <span style="color:#996600;">&quot;guapo&quot;</span>, <span style="color:#996600;">&quot;andy&quot;</span>, <span style="color:#996600;">&quot;ash&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span></div></td></tr></tbody></table></div>
<p>下面的代码：</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#CC0066; font-weight:bold;">string</span> = names.<span style="color:#9900CC;">inject</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>x,n<span style="color:#006600; font-weight:bold;">|</span> x <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#996600;">&quot;#{n} &quot;</span> <span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>将会输出：</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&quot;edde rita guapo andy ash &quot;</div></td></tr></tbody></table></div>
<p>当然你也可以通过这样的代码来得到同样的结果：</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#CC0066; font-weight:bold;">string</span> = <span style="color:#996600;">&quot;&quot;</span><br />
names.<span style="color:#9900CC;">each</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>n<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#CC0066; font-weight:bold;">string</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#996600;">&quot;#{n} &quot;</span><span style="color:#006600; font-weight:bold;">&#125;</span></div></td></tr></tbody></table></div>
<p>这里有一点请大家记住，在inject的每一步里你可以做任何事情，或者说的更明确些你可以做非常复杂的事情，比如让我们上面的例子变得稍微复杂一些，我们想让每个人名首字母大写，后面接着一个逗号，人名和人名之间用空格分开，当然最后一个人名之后不需要再加任何字符，用我们熟悉的each方法，我们可以这样做：</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#CC0066; font-weight:bold;">string</span> = <span style="color:#996600;">&quot;&quot;</span><br />
names.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>n<span style="color:#006600; font-weight:bold;">|</span><br />
&nbsp; &nbsp; name = n.<span style="color:#9900CC;">length</span> <span style="color:#006600; font-weight:bold;">&gt;</span> 4 ? n.<span style="color:#9900CC;">capitalize</span> : n<br />
&nbsp; &nbsp; n == names.<span style="color:#9900CC;">last</span> ? <span style="color:#CC0066; font-weight:bold;">string</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> name : <span style="color:#CC0066; font-weight:bold;">string</span> <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#996600;">&quot;#{name}, &quot;</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span></div></td></tr></tbody></table></div>
<p>如果用inject方法，可以像下面这样：</p>
<div class="codecolorer-container ruby dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="ruby codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color:#CC0066; font-weight:bold;">string</span> = names.<span style="color:#9900CC;">inject</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>x,n<span style="color:#006600; font-weight:bold;">|</span><br />
&nbsp; name = n.<span style="color:#9900CC;">length</span> <span style="color:#006600; font-weight:bold;">&gt;</span> <span style="color:#006666;">4</span> ? n.<span style="color:#9900CC;">capitalize</span> : n<br />
&nbsp; n == names.<span style="color:#9900CC;">last</span> ? x <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> name : x <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> <span style="color:#996600;">&quot;#{name}, &quot;</span><br />
<span style="color:#9966CC; font-weight:bold;">end</span></div></td></tr></tbody></table></div>
<p>上面两段代码都会输入相同的结果：</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&quot;Edde, Rita, Guapo, Andy, Ash&quot;</div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=30</wfw:commentRss>
		<slash:comments>42735</slash:comments>
		</item>
		<item>
		<title>绕口令(tongue twister)</title>
		<link>http://get2know.it/?p=26</link>
		<comments>http://get2know.it/?p=26#comments</comments>
		<pubDate>Fri, 18 Dec 2009 06:55:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[生活娱乐]]></category>
		<category><![CDATA[英语]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[绕口令]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=26</guid>
		<description><![CDATA[　　绕口令真的很不容易说好，但是我觉得还是很值得练习练习的，一来可以让自己口腔肌肉变得更加灵活，二来也可以在朋友面前秀一秀，何乐而不为呢？英文中也有绕口令，叫做tongue twister，这个名子真的很形象，似乎是在告诉我们绕口令可以让我们的舌头都卷起来，哈哈。
tongue twister在朗文词典和柯林斯词典中的解释如下：

A word or phrase that is difficult to say quickly.
A tongue-twister is a sentence or expression which is very difficult to say properly, especially when you try to say it quickly.

下面是一个很有名的中文绕口令：
《喇嘛和哑巴》
　　打南边来了个喇嘛，手里提拉着五斤鳎(tǎ)目(ma)。打北边来了个哑巴，腰里别着个喇叭。南边提拉着鳎目的喇嘛要拿鳎目换北边别喇叭哑巴的喇叭。  哑巴不愿意拿喇叭换喇嘛的鳎目，喇嘛非要换别喇叭哑巴的喇叭。
喇嘛抡起鳎目抽了别喇叭哑巴一鳎目，哑巴摘下喇叭打了提拉着鳎目的喇嘛一喇叭。也不知是提拉着鳎目的喇嘛抽了别喇叭哑巴一鳎目，还是别喇叭哑巴打了提拉着鳎目的喇嘛一喇叭。喇嘛炖鳎目，哑巴嘀嘀哒哒吹喇叭。
以下是几个tongue twister：

George Gabs grabs crabs. Crabs George Gabs grabs. When George Gabs grabs crabs, how does George Gabs grab crabs?
All I want [...]]]></description>
			<content:encoded><![CDATA[<p>　　绕口令真的很不容易说好，但是我觉得还是很值得练习练习的，一来可以让自己口腔肌肉变得更加灵活，二来也可以在朋友面前秀一秀，何乐而不为呢？英文中也有绕口令，叫做tongue twister，这个名子真的很形象，似乎是在告诉我们绕口令可以让我们的舌头都卷起来，哈哈。</p>
<p>tongue twister在朗文词典和柯林斯词典中的解释如下：</p>
<ol>
<li>A word or phrase that is difficult to say quickly.</li>
<li>A tongue-twister is a sentence or expression which is very difficult to say properly, especially when you try to say it quickly.</li>
</ol>
<p>下面是一个很有名的中文绕口令：</p>
<p>《喇嘛和哑巴》</p>
<p>　　打南边来了个喇嘛，手里提拉着五斤鳎(tǎ)目(ma)。打北边来了个哑巴，腰里别着个喇叭。南边提拉着鳎目的喇嘛要拿鳎目换北边别喇叭哑巴的喇叭。  哑巴不愿意拿喇叭换喇嘛的鳎目，喇嘛非要换别喇叭哑巴的喇叭。<br />
喇嘛抡起鳎目抽了别喇叭哑巴一鳎目，哑巴摘下喇叭打了提拉着鳎目的喇嘛一喇叭。也不知是提拉着鳎目的喇嘛抽了别喇叭哑巴一鳎目，还是别喇叭哑巴打了提拉着鳎目的喇嘛一喇叭。喇嘛炖鳎目，哑巴嘀嘀哒哒吹喇叭。</p>
<p>以下是几个tongue twister：</p>
<ol>
<li>George Gabs grabs crabs. Crabs George Gabs grabs. When George Gabs grabs crabs, how does George Gabs grab crabs?</li>
<li>All I want is a proper cup of coffee made in a proper copper coffee pot, you can believe it or not, but I just want a cup of coffee in a proper coffee pot. Tin coffee pots or iron coffee pots are of no use to me. If I can&#8217;t have a proper cup of coffee in a proper copper coffee pot, I&#8217;ll have a cup of tea!</li>
<li>A tutor who tooted a flute tried to tutor two tooters to toot. Said the two to their tutor, &#8220;Is it harder to toot or to tutor two tooters to toot?&#8221;</li>
<li>Mr. See owned a saw. And Mr. Soar owned a seesaw. Now See&#8217;s saw sawed Soar&#8217;s seesaw before Soar saw See, which made Soar sore. Had Soar seen See&#8217;s saw before See sawed Soar&#8217;s seesaw, See&#8217;s saw would not have sawed Soar&#8217;s seesaw. So See&#8217;s saw sawed Soar&#8217;s seesaw. But it was sad to see Soar so sore just because See&#8217;s saw sawed Soar&#8217;s seesaw!</li>
<li>She sells seashells on the sea shore. The shells she sells are surely seashells. So if she sells shells on the seashore, I&#8217;m sure she sells seashore shells.</li>
<li>Silly Sally swiftly shooed seven silly sheep. The seven silly sheep Silly Sally shooed shilly-shallied south. These sheep shouldn&#8217;t sleep in a shack; sheep should sleep in a shed.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=26</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>腾讯推出QQ五笔输入法</title>
		<link>http://get2know.it/?p=23</link>
		<comments>http://get2know.it/?p=23#comments</comments>
		<pubDate>Thu, 17 Dec 2009 13:51:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[应用软件]]></category>
		<category><![CDATA[QQ]]></category>
		<category><![CDATA[五笔]]></category>
		<category><![CDATA[输入法]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=23</guid>
		<description><![CDATA[这两年输入法和浏览器一样也成了各大公司抢夺的重要市场，QQ早先已经推出了拼音输入法，现在它又推出了五笔输入法，因为我是用五笔输入法的，所以得到这条消息还是想试一试。下面是官方的一些介绍：

版本最新特性
1、三种输入模式，五笔拼音混输、纯五笔、纯拼音，让你使用更方便
2、用户可定制候选词的排列顺序，固定词序或按输入次数排序
3、推出词库管理工具，用户可评估、替换系统词库，使用自己的词库，输入得心应手
4、支持下载添加分类词库(dict.py.qq.com)
5、大量精美皮肤，支持在线安装（skin.py.qq.com）
6、提供手动造词、编码反查、候选词置顶、候选词删除等快捷操作
7、分号模式支持临时英文输入、数字转换、计算器等便捷输入
8、“Ctrl+;”快捷切换到QQ五笔 （需要先在设置中开通）
9、用户可以在“个人信息”中查看输入速度，学习之前输入中不熟悉的字词


QQ五笔输入法的特色
词库开放
提供词库管理工具，用户可以方便地替换系统词库。

输入速度快
输入速度快，占用资源小，让五笔输入更顺畅。

兼容性高，更加稳定
专业的兼容性测试，让QQ五笔表现更加稳定。

大量精美皮肤
提供多套精美皮肤，让书写更加享受。


]]></description>
			<content:encoded><![CDATA[<p>这两年输入法和浏览器一样也成了各大公司抢夺的重要市场，QQ早先已经推出了拼音输入法，现在它又推出了五笔输入法，因为我是用五笔输入法的，所以得到这条消息还是想试一试。下面是官方的一些介绍：</p>
<dl>
<dt><span>版本最新特性</span></dt>
<dd>1、三种输入模式，五笔拼音混输、纯五笔、纯拼音，让你使用更方便</dd>
<dd>2、用户可定制候选词的排列顺序，固定词序或按输入次数排序</dd>
<dd>3、推出词库管理工具，用户可评估、替换系统词库，使用自己的词库，输入得心应手</dd>
<dd>4、支持下载添加分类词库(dict.py.qq.com)</dd>
<dd>5、大量精美皮肤，支持在线安装（skin.py.qq.com）</dd>
<dd>6、提供手动造词、编码反查、候选词置顶、候选词删除等快捷操作</dd>
<dd>7、分号模式支持临时英文输入、数字转换、计算器等便捷输入</dd>
<dd>8、“Ctrl+;”快捷切换到QQ五笔 （需要先在设置中开通）</dd>
<dd>9、用户可以在“个人信息”中查看输入速度，学习之前输入中不熟悉的字词</dd>
</dl>
<dl>
<dt><span>QQ五笔输入法的特色</span></dt>
<dd>词库开放</p>
<p>提供词库管理工具，用户可以方便地替换系统词库。</p>
</dd>
<dd>输入速度快</p>
<p>输入速度快，占用资源小，让五笔输入更顺畅。</p>
</dd>
<dd>兼容性高，更加稳定</p>
<p>专业的兼容性测试，让QQ五笔表现更加稳定。</p>
</dd>
<dd style="border: medium none ;">大量精美皮肤</p>
<p>提供多套精美皮肤，让书写更加享受。</p>
</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=23</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于网站中script标签的位置</title>
		<link>http://get2know.it/?p=8</link>
		<comments>http://get2know.it/?p=8#comments</comments>
		<pubDate>Sat, 12 Dec 2009 22:34:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=8</guid>
		<description><![CDATA[我在好久以前就看到有些网站在引入js文件时把script标签写在了body的结束标签之前，也就是像下面这样：
123456789101112131415161718&#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Strict//EN&#34;
&#160; &#160; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#34;&#62;
&#60;html&#62;
&#60;head&#62;
&#60;meta http-equiv=&#34;Content-type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62;
&#60;/head&#62;
&#60;body&#62;

&#60;p&#62;Hello get2know.it&#60;p/&#62;

&#60;script type=&#34;text/JavaScript&#34; src=&#34;jquery.min.js&#34;&#62;
&#60;script type=&#34;text/javascript&#34;&#62;
&#160; &#160; $(function(){
&#160; &#160; alert($(&#34;p&#34;).text());
&#160; &#160; });
&#60;/script&#62;
&#60;/body&#62;
&#60;/html&#62;
但是却一直不知道人家为什么要这么写，现在我明白是为什么了，原来把script紧挨着写在body之前有好处的，因为：

script标签写在head里会导致浏览器在遇到script标签时去下载这个js文件，这时浏览器是不会并行地去做其它的download的（比如图片），而用户在这个时候因为dom没有加载完成，所以什么也不会看到，所以给用户的体验不好。
script写在head里会使得浏览器在遇到这些Javascript代码时就去执行它们，而Javascript大多数都是要去操作dom的，而这时dom并不存在，所以这样的Javascript里就得写一些事件注册的代码，比如window.onload=init;之类的，而把script标签写在body结束标签之前时则不需要这样的事件注册的代码，大家想一想一个很简单的道理，代码多了执行需要的时间肯定会长一些，所以说把script标签写在body结束标签之前会提高程序的效率。
把script标签写在body结束标签之前的话，Javascript代码在被执行时dom已经加载完成，所以不会出现因为dom没有加载完成而出现的一现问题，你可以直接书写你要写的代码，需要打的字会相应地少一点。
把script标签写在head里是不过是我们长期以来的一种古老的编程习惯罢了。

下面一些网站都把script标签写在了body结束标签之前：

http://www.youku.com
http://www.tudou.com
http://css3.org
http://www.yahoo.com
http://www.qq.com
http://www.sina.com.cn
&#8230;

]]></description>
			<content:encoded><![CDATA[<p>我在好久以前就看到有些网站在引入js文件时把script标签写在了body的结束标签之前，也就是像下面这样：</p>
<div class="codecolorer-container html4strict dawn" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00bbdd;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span><br />
<span style="color: #00bbdd;">&nbsp; &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">html</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Content-type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">head</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Hello get2know.it<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span><span style="color: #66cc66;">/</span>&gt;</span><br />
<br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/JavaScript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;jquery.min.js&quot;</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">script</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span>&gt;</span><br />
&nbsp; &nbsp; $(function(){<br />
&nbsp; &nbsp; alert($(&quot;p&quot;).text());<br />
&nbsp; &nbsp; });<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">script</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">html</span>&gt;</span></div></td></tr></tbody></table></div>
<p>但是却一直不知道人家为什么要这么写，现在我明白是为什么了，原来把script紧挨着写在body之前有好处的，因为：</p>
<ol>
<li>script标签写在head里会导致浏览器在遇到script标签时去下载这个js文件，这时浏览器是不会并行地去做其它的download的（比如图片），而用户在这个时候因为dom没有加载完成，所以什么也不会看到，所以给用户的体验不好。</li>
<li>script写在head里会使得浏览器在遇到这些Javascript代码时就去执行它们，而Javascript大多数都是要去操作dom的，而这时dom并不存在，所以这样的Javascript里就得写一些事件注册的代码，比如<code class="codecolorer javascript default"><span class="javascript">window.<span style="color: #000066;">onload</span><span style="color: #339933;">=</span>init<span style="color: #339933;">;</span></span></code>之类的，而把script标签写在body结束标签之前时则不需要这样的事件注册的代码，大家想一想一个很简单的道理，代码多了执行需要的时间肯定会长一些，所以说把script标签写在body结束标签之前会提高程序的效率。</li>
<li>把script标签写在body结束标签之前的话，Javascript代码在被执行时dom已经加载完成，所以不会出现因为dom没有加载完成而出现的一现问题，你可以直接书写你要写的代码，需要打的字会相应地少一点。</li>
<li>把script标签写在head里是不过是我们长期以来的一种古老的编程习惯罢了。</li>
</ol>
<p>下面一些网站都把script标签写在了body结束标签之前：</p>
<ol>
<li>http://www.youku.com</li>
<li>http://www.tudou.com</li>
<li>http://css3.org</li>
<li>http://www.yahoo.com</li>
<li>http://www.qq.com</li>
<li>http://www.sina.com.cn</li>
<li>&#8230;</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=8</wfw:commentRss>
		<slash:comments>3625</slash:comments>
		</item>
		<item>
		<title>新网站开张了，希望大家多多支持</title>
		<link>http://get2know.it/?p=3</link>
		<comments>http://get2know.it/?p=3#comments</comments>
		<pubDate>Sat, 12 Dec 2009 22:03:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[其它类别]]></category>

		<guid isPermaLink="false">http://get2know.it/?p=3</guid>
		<description><![CDATA[用了差不多一个星期的业余时间，在2009年12月13日5点46分Get2Know.it终于可以访问了。我还是很高兴的，毕竟终于有了一个可以说话的地方了，哈哈！
以前我也用过各种各样的博客，最早可以追溯到2002年到2003年这一段时间。不过那时是不太了解blog，加上又没什么可以写的东西，于是放弃了。后来过了一些时间又想找个博客来记录自己平时的学习心得什么的，也试过blogspot、wordpress、blogjava、donews、qzone、blogger、新浪博客、网易博客、天涯博客等等等等，但要么是因为网站在国外被封，要么是可定制性太差限制太多，于是全部放弃。终于前几个星期买了空间和域名，打算自己架设blog，目的是想得到高度的可定制性。哈哈，用其它的提供商提供的blog在我感觉就好像是带着枷锁走路一样，太难受了，也许这是做技术人员的通病吧&#8230;
空间域名买到后为选哪个系统还是经过了一些考虑，最终选择了最火爆的wordpress系统。这几天主要做的事情有：

下载安装到本地，熟悉一下其基本操作
看了一下wordpress的wiki，了解了一下wordpress的结构
在网络上找漂亮的模板
因为第3步没有结果，所以只有把一个还看得过眼的进行修改，从而得到现在这个样子
修改完后上传代码，建立数据库

目前的想法是，这个blog里会记录一些我学习到的内容做为以后的参考，另外也可以分享给大家，希望大家支持:-)
]]></description>
			<content:encoded><![CDATA[<p>用了差不多一个星期的业余时间，在2009年12月13日5点46分Get2Know.it终于可以访问了。我还是很高兴的，毕竟终于有了一个可以说话的地方了，哈哈！</p>
<p>以前我也用过各种各样的博客，最早可以追溯到2002年到2003年这一段时间。不过那时是不太了解blog，加上又没什么可以写的东西，于是放弃了。后来过了一些时间又想找个博客来记录自己平时的学习心得什么的，也试过blogspot、wordpress、blogjava、donews、qzone、blogger、新浪博客、网易博客、天涯博客等等等等，但要么是因为网站在国外被封，要么是可定制性太差限制太多，于是全部放弃。终于前几个星期买了空间和域名，打算自己架设blog，目的是想得到高度的可定制性。哈哈，用其它的提供商提供的blog在我感觉就好像是带着枷锁走路一样，太难受了，也许这是做技术人员的通病吧&#8230;</p>
<p>空间域名买到后为选哪个系统还是经过了一些考虑，最终选择了最火爆的wordpress系统。这几天主要做的事情有：</p>
<ol>
<li>下载安装到本地，熟悉一下其基本操作</li>
<li>看了一下wordpress的wiki，了解了一下wordpress的结构</li>
<li>在网络上找漂亮的模板</li>
<li>因为第3步没有结果，所以只有把一个还看得过眼的进行修改，从而得到现在这个样子</li>
<li>修改完后上传代码，建立数据库</li>
</ol>
<p>目前的想法是，这个blog里会记录一些我学习到的内容做为以后的参考，另外也可以分享给大家，希望大家支持:-)</p>
]]></content:encoded>
			<wfw:commentRss>http://get2know.it/?feed=rss2&amp;p=3</wfw:commentRss>
		<slash:comments>456</slash:comments>
		</item>
	</channel>
</rss>
