<?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>四有新人 &#187; 互联网</title>
	<atom:link href="http://wangwenhao.net/category/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://wangwenhao.net</link>
	<description>本站不支持IE，谢谢</description>
	<lastBuildDate>Sun, 25 Dec 2011 13:37:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>IE你好，IE再见</title>
		<link>http://wangwenhao.net/2011/07/22/goodbye-ie/</link>
		<comments>http://wangwenhao.net/2011/07/22/goodbye-ie/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 05:08:26 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://wangwenhao.net/?p=577</guid>
		<description><![CDATA[在网站模板中用了一些HTML5的语义标签，用IE访问显示混乱，远离IE，从我做起！让我们一起对IE说不！！！]]></description>
			<content:encoded><![CDATA[<p>在网站模板中用了一些HTML5的语义标签，用IE访问显示混乱，远离IE，从我做起！让我们一起对IE说不！！！</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2011/07/22/goodbye-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>仿人人网底部“返回顶部”按钮实现</title>
		<link>http://wangwenhao.net/2011/07/06/implement-back-to-top-button/</link>
		<comments>http://wangwenhao.net/2011/07/06/implement-back-to-top-button/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 05:04:06 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[Web开发]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://wangwenhao.net/?p=535</guid>
		<description><![CDATA[最近上人人网的时候，发现页面的底部有一个“返回顶部”的按钮，于是在自己的网站上也搞了一个，其实非常简单。]]></description>
			<content:encoded><![CDATA[<p>最近上人人网的时候，发现页面的底部有一个“返回顶部”的按钮，于是在自己的网站上也搞了一个，其实非常简单。</p>
<p>首先，修改主题模板的footer.php文件，&lt;/body&gt;上面加入如下代码：</p>
<pre>
<div class="codecolorer-container html4strict mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;toolBackTo&quot;</span> <span style="color: #000066;">style</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;display: none;&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;返回顶部&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;window.scrollTo(0,0); return false;&quot;</span> </span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#top&quot;</span>&gt;</span>返回顶部<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></div></div>
</pre>
<p>上面这段代码是完全Copy自人人网的源代码。返回页面顶端的代码很简单。</p>
<p>接下来修改style.css文件，加入上面div和链接的样式：</p>
<pre>
<div class="codecolorer-container css mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6666ff;">.back-to</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">fixed</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">999</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">110px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; zoom<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; -ie6-position-fixed-delay<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">200</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<br />
<span style="color: #6666ff;">.back-to</span> .back-<span style="color: #000000; font-weight: bold;">top</span><span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-50px</span> <span style="color: #cc66cc;">0</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<br />
<span style="color: #6666ff;">.back-to</span> .back-<span style="color: #000000; font-weight: bold;">top</span> <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">50px</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">50px</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;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">http://a.xnimg.cn/imgpro/button/back-top.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</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: #993333;">none</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">text-indent</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-9999em</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></div>
</pre>
<p>非常不好意思，这些代码也是原样copy自人人网。</p>
<p>.back-to就是div的样式，它的position设为fixed。这样它就会固定在页面的某个地方。在这里它的位置是bottom: 10px; right: 10px，就是右下角距离浏览器边角各10px的位置。</p>
<p>到这一步，基本功能已经实现了，当我们把页面滚动到下方的时候，点击这个按钮，就会自动跳到页面的顶端。</p>
<p>不过，当页面在顶端的时候，这个按钮其实没有存在的必要，我们可以用javascript来控制它。</p>
<p>再回到footer.php文件，在刚刚的代码下面加上如下代码。</p>
<pre>
<div class="codecolorer-container javascript mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
$<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: #003366; font-weight: bold;">var</span> bt <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#toolBackTo'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> hl <span style="color: #339933;">=</span> $.<span style="color: #660066;">browser</span>.<span style="color: #660066;">webkit</span> <span style="color: #339933;">?</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'body'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'html'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; $<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #000066;">scroll</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; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> st <span style="color: #339933;">=</span> hl.<span style="color: #660066;">scrollTop</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; show <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>st<span style="color: #339933;">&gt;</span><span style="color: #CC0000;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> show <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bt.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bt.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;slow&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</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><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
</pre>
<p>这段代码用到了jQuery，所以需要先检查一下当前模板有没有引用jQuery，如果没有的话要在header.php里引用它。</p>
<p>我们给window对象绑上了scroll方法，在页面滚动的时候触发来控制返回按钮所在div的隐藏和显示。</p>
<p>代码非常简单。</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2011/07/06/implement-back-to-top-button/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>浏览器分类和浏览器核心详解</title>
		<link>http://wangwenhao.net/2011/07/02/browser-and-browser-core-detailed-classification/</link>
		<comments>http://wangwenhao.net/2011/07/02/browser-and-browser-core-detailed-classification/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 11:50:17 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[我的工作]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://wangwenhao.net/?p=523</guid>
		<description><![CDATA[浏览器的种类，如果按照生产商的品牌分，不说数以万计，起码也有成百上千种了， 如果按浏览器核心分类，它的种类就会少的多。 当今浏览器核心的种类值得一体的大约只有三到四个，它们分别是：Trident、Gecko、WebKit和Presto。 乍一看，似乎都很陌生，其实并不然，只要你上过网，就至少用过其中一种浏览器核心的浏览器软件，因为它们的市场占有率的确是太高了。 一、Trident核心，代表产品Internet Explorer 说起Trident，很多人都会感到陌生，但提起IE（Internet Explorer）则无人不知无人不晓，由于其被包含在全世界使用率最高的操作系统Windows中，得到了极高的市场占有率，所以我们又经常称其为IE核心。 Trident（又称为MSHTML），是微软开发的一种排版引擎。它在1997年10月与IE4一起诞生，至今经历12年，至少更新了四个版本，虽然它相对其它浏览器核心还比较落后，但Trident一直在被不断地更新和完善。而且除IE外，许多产品都在使用Trident核心，比如Windows的Help程序、RealPlayer、Windows Media Player、Windows Live Messenger、Outlook Express等等都使用了Trident技术。 但并不是所有的IE都使用Trident引擎，微软还有另一个网页浏览器排版引擎，叫做Tasman，它是使用在Internet Explorer for Mac的排版引擎，即苹果版的IE引擎。 使用Trident引擎的浏览器有很多，比如Internet Explorer、Maxthon遨游、世界之窗、腾讯TT、Netcapter、Avant等等，但Trident只能应用于Windows平台，且是不开源的。 二、Gecko核心，代表作品Mozilla Firefox Gecko也是一个陌生的词，但Firefox的名声应该已经有所耳闻，Gecko是一套开放源代码的、以C++编写的网页排版引擎。 目前为Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。这软件原本是由网景通讯公司开发的，现在则由Mozilla基金会维护。它的最大优势是跨平台，能在Microsoft Windows、Linux和MacOS X等主要操作系统上运行，而且它提供了一个丰富的程序界面以供互联网相关的应用程式使用，例如网页浏览器、HTML编辑器、客户端/服务器等等。 Gecko是最流行的排版引擎之一，仅次于Trident。使用它的最著名浏览器有Firefox、Netscape6至9。 三、WebKit核心，代表作品Safari、Chrome webkit 是一个开源项目，包含了来自KDE项目和苹果公司的一些组件，主要用于Mac OS系统，它的特点在于源码结构清晰、渲染速度极快。主要代表作品有Safari和Google的浏览器Chrome。 四、Presto核心，代表作品Opera Presto是由Opera Software开发的浏览器排版引擎，供Opera 7.0及以上使用。它取代了旧版Opera 4至6版本使用的Elektra排版引擎，包括加入动态功能，例如网页或其部分可随着DOM及Script语法的事件而重新排版。 Presto在推出后不断有更新版本推出，使不少错误得以修正，以及阅读Javascript效能得以最佳化，并成为速度最快的引擎，这也是Opera被公认为速度最快的浏览器的基础。]]></description>
			<content:encoded><![CDATA[<p>浏览器的种类，如果按照生产商的品牌分，不说数以万计，起码也有成百上千种了， 如果按浏览器核心分类，它的种类就会少的多。</p>
<p>当今浏览器核心的种类值得一体的大约只有三到四个，它们分别是：Trident、Gecko、WebKit和Presto。</p>
<p>乍一看，似乎都很陌生，其实并不然，只要你上过网，就至少用过其中一种浏览器核心的浏览器软件，因为它们的市场占有率的确是太高了。</p>
<h3>一、Trident核心，代表产品Internet Explorer</h3>
<p>说起Trident，很多人都会感到陌生，但提起IE（Internet Explorer）则无人不知无人不晓，由于其被包含在全世界使用率最高的操作系统Windows中，得到了极高的市场占有率，所以我们又经常称其为IE核心。</p>
<p>Trident（又称为MSHTML），是微软开发的一种排版引擎。它在1997年10月与IE4一起诞生，至今经历12年，至少更新了四个版本，虽然它相对其它浏览器核心还比较落后，但Trident一直在被不断地更新和完善。而且除IE外，许多产品都在使用Trident核心，比如Windows的Help程序、RealPlayer、Windows Media Player、Windows Live Messenger、Outlook Express等等都使用了Trident技术。</p>
<p>但并不是所有的IE都使用Trident引擎，微软还有另一个网页浏览器排版引擎，叫做Tasman，它是使用在Internet Explorer for Mac的排版引擎，即苹果版的IE引擎。</p>
<p>使用Trident引擎的浏览器有很多，比如Internet Explorer、Maxthon遨游、世界之窗、腾讯TT、Netcapter、Avant等等，但Trident只能应用于Windows平台，且是不开源的。</p>
<h3>二、Gecko核心，代表作品Mozilla Firefox</h3>
<p>Gecko也是一个陌生的词，但Firefox的名声应该已经有所耳闻，Gecko是一套开放源代码的、以C++编写的网页排版引擎。</p>
<p>目前为Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用。这软件原本是由网景通讯公司开发的，现在则由Mozilla基金会维护。它的最大优势是跨平台，能在Microsoft Windows、Linux和MacOS X等主要操作系统上运行，而且它提供了一个丰富的程序界面以供互联网相关的应用程式使用，例如网页浏览器、HTML编辑器、客户端/服务器等等。</p>
<p>Gecko是最流行的排版引擎之一，仅次于Trident。使用它的最著名浏览器有Firefox、Netscape6至9。</p>
<h3>三、WebKit核心，代表作品Safari、Chrome</h3>
<p>webkit 是一个开源项目，包含了来自KDE项目和苹果公司的一些组件，主要用于Mac OS系统，它的特点在于源码结构清晰、渲染速度极快。主要代表作品有Safari和<a href="http://www.google.com"target="_blank"rel="external"title="Google" >Google</a>的浏览器Chrome。</p>
<h3>四、Presto核心，代表作品Opera</h3>
<p>Presto是由Opera Software开发的浏览器排版引擎，供Opera 7.0及以上使用。它取代了旧版Opera 4至6版本使用的Elektra排版引擎，包括加入动态功能，例如网页或其部分可随着DOM及Script语法的事件而重新排版。</p>
<p>Presto在推出后不断有更新版本推出，使不少错误得以修正，以及阅读Javascript效能得以最佳化，并成为速度最快的引擎，这也是Opera被公认为速度最快的浏览器的基础。</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2011/07/02/browser-and-browser-core-detailed-classification/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>前台页面开发规范</title>
		<link>http://wangwenhao.net/2011/06/23/web-development-guide-line/</link>
		<comments>http://wangwenhao.net/2011/06/23/web-development-guide-line/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 05:12:41 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[我的工作]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://wangwenhao.net/?p=519</guid>
		<description><![CDATA[Web 开发的分散性和交互性，决定了 Web 开发必须遵从一定的开发规范和技术约定，只有每个开发人员都按照一个共同的规范去设计、沟通、开发、测试、部署，才能保证整个开发团队协调一致的工作，从而提高开发工作效率，提升工程项目质量。 一、基本规范： 页面一定要有相应的Title，特殊页面可以不要；如Iframe页、Include页等 主要页面要有meta字段以便于搜索引擎查找，还可充当注释作用 尽量使用广泛支持的技术。以流行的浏览器及版本为标准，同时照顾低版本 不使用过小的字体不使用过大的图片、动画、声音、不使用过长的滚屏 及时删除无用文件，防止无谓的下载速度减慢、后期维护简洁明了 所有文件全部以小写字母命名，包括图形文件。禁止用中文作文件名 页面支持最低800X600屏幕分辨率（实际尺寸为778*434px），即不能出现横向滚动条 通常情况下页面应以居中为主，如有特殊要求可以设置居顶、居左 图片采用gif, jpg压缩格式，以减小页面下载数据量，&#60;img alt=&#34;&#34; /&#62;标记要有width,height属性 所有页面都需要定义背景颜色，系统默认值是可以被用户随意更改的 二、文件命名与目录结构规则 首页面必须是以index.htm 、index.jsp命名的文件，按目录划分 HTML文件扩展文件名一律用 .htm，不要同.html扩展名混用 除非有特殊情况，目录、文件的名称全部用小写英文字母、数字、下划线的组合，其中不得包含汉字、空格和特殊字符；目录名应以英文、拼音为主。尽量用一些大家都能看懂的词汇。 目录下新建css文件夹，专门用来存放本级目录的全局CSS样式文件 目录下新建image文件夹，专门用来存放本级目录的全局图片资源，如gif、jpg 目录下新建script文件夹，专门用来存放本级目录的全局脚本程序代码，如js、vbs 目录下新建media文件夹，专门用来存放本级目录的全局媒体文件，如flash、avi 目录下新建temp文件夹，专门用来存放本级目录的临时或测试资源文件 根目录下一般只存放index页面及其所包含的帧页面与一些公共页面，如error、wait 所有文件与目录尽量符合DOS系统8/3文件格式命名，即8字节文件名、3字节扩展名 三、表格嵌套布局规范 在排布表格之前,请大家一定要好好思考一个最佳的方案,表格的嵌套尽量控制在三层以内,并且应该尽量避免 两个标记,经验表明,这两个标记会带来许多麻烦。 一个网页要尽量避免用整个一张大表格,所有的内容都嵌套在这个大表格之内,因为浏览器在解释页面的元素时,是以表格为单位逐一显示,如果一张网页是嵌套在一个大表格之内,那么很可能造成的后果就是,当浏览者敲入网址,他要先面对一片空白很长时间,然后所有的网页内容同时出现。如果必须这样做,请使用&#60;tbody&#62;标记,以便能够使这个大表格分块显示。 排版中我们经常会遇到需要进行首行缩进的处理,不要使用 或者全角空格来达到效果,规范的做法是在样式表中定义 p { text-indent: 2em; } 然后给每一段加上&#60;p&#62;标记,注意,一般情况下,请不要省略&#60;/p&#62;结束标记 。 原则上,禁止用 &#60;img alt=”" width=”?” height=”?” /&#62; 来人为干预图片显示的尺寸,而且建议 &#60;img alt=”" /&#62; 标签中不要带上 [...]]]></description>
			<content:encoded><![CDATA[<p>Web 开发的分散性和交互性，决定了 Web 开发必须遵从一定的开发规范和技术约定，只有每个开发人员都按照一个共同的规范去设计、沟通、开发、测试、部署，才能保证整个开发团队协调一致的工作，从而提高开发工作效率，提升工程项目质量。</p>
<h2>一、基本规范：</h2>
<p>页面一定要有相应的Title，特殊页面可以不要；如Iframe页、Include页等</p>
<p>主要页面要有meta字段以便于搜索引擎查找，还可充当注释作用</p>
<p>尽量使用广泛支持的技术。以流行的浏览器及版本为标准，同时照顾低版本</p>
<p>不使用过小的字体不使用过大的图片、动画、声音、不使用过长的滚屏</p>
<p>及时删除无用文件，防止无谓的下载速度减慢、后期维护简洁明了</p>
<p>所有文件全部以小写字母命名，包括图形文件。禁止用中文作文件名</p>
<p>页面支持最低800X600屏幕分辨率（实际尺寸为778*434px），即不能出现横向滚动条</p>
<p>通常情况下页面应以居中为主，如有特殊要求可以设置居顶、居左</p>
<p>图片采用gif, jpg压缩格式，以减小页面下载数据量，<code class="codecolorer text mac-classic"><span class="text">&lt;img alt=&quot;&quot; /&gt;</span></code>标记要有width,height属性</p>
<p>所有页面都需要定义背景颜色，系统默认值是可以被用户随意更改的</p>
<h2>二、文件命名与目录结构规则</h2>
<p>首页面必须是以index.htm 、index.jsp命名的文件，按目录划分</p>
<p>HTML文件扩展文件名一律用 .htm，不要同.html扩展名混用</p>
<p>除非有特殊情况，目录、文件的名称全部用小写英文字母、数字、下划线的组合，其中不得包含汉字、空格和特殊字符；目录名应以英文、拼音为主。尽量用一些大家都能看懂的词汇。</p>
<p>目录下新建css文件夹，专门用来存放本级目录的全局CSS样式文件</p>
<p>目录下新建image文件夹，专门用来存放本级目录的全局图片资源，如gif、jpg</p>
<p>目录下新建script文件夹，专门用来存放本级目录的全局脚本程序代码，如js、vbs</p>
<p>目录下新建media文件夹，专门用来存放本级目录的全局媒体文件，如flash、avi</p>
<p>目录下新建temp文件夹，专门用来存放本级目录的临时或测试资源文件</p>
<p>根目录下一般只存放index页面及其所包含的帧页面与一些公共页面，如error、wait</p>
<p>所有文件与目录尽量符合DOS系统8/3文件格式命名，即8字节文件名、3字节扩展名</p>
<h2>三、表格嵌套布局规范</h2>
<p>在排布表格之前,请大家一定要好好思考一个最佳的方案,表格的嵌套尽量控制在三层以内,并且应该尽量避免   两个标记,经验表明,这两个标记会带来许多麻烦。</p>
<p>一个网页要尽量避免用整个一张大表格,所有的内容都嵌套在这个大表格之内,因为浏览器在解释页面的元素时,是以表格为单位逐一显示,如果一张网页是嵌套在一个大表格之内,那么很可能造成的后果就是,当浏览者敲入网址,他要先面对一片空白很长时间,然后所有的网页内容同时出现。如果必须这样做,请使用&lt;tbody&gt;标记,以便能够使这个大表格分块显示。</p>
<p>排版中我们经常会遇到需要进行首行缩进的处理,不要使用   或者全角空格来达到效果,规范的做法是在样式表中定义 p { text-indent: 2em; } 然后给每一段加上&lt;p&gt;标记,注意,一般情况下,请不要省略&lt;/p&gt;结束标记 。</p>
<p>原则上,禁止用 &lt;img alt=”" width=”?” height=”?” /&gt; 来人为干预图片显示的尺寸,而且建议 &lt;img alt=”" /&gt; 标签中不要带上 width 和 height 两个属性,这是因为制作过程中,图片往往需要反复的修改,这样可以避免人为干预图片显示的尺寸,尽可能的发挥浏览器自身的功能；但是这样的一个副作用是当网页还未加载图片时,不会留出图片的站位大小,可能会造成网页在加载过程中抖动（如果图片是插在一个固定大小的表格里的,不会有这个现象）,尤其是当图片的尺寸较大时,这种现象会很明显,所以当预料到这种会明显导致网页抖动的情况会发生时,请大家务必在最后给 &lt;img alt=”" /&gt; 附上 width 和 height 属性。</p>
<p>为了最大程度的发挥浏览器自动排版的功能,在一段完整的文字中请尽量不要使用&lt;br&gt;来人工干预分段。</p>
<p>不同语种的文字之间应该有一个半角空格,但避头的符号之前和避尾的符号之后除外汉字之间的标点要用全角标点,英文字母和数字周围的括号应该使用半角括号。</p>
<p>请不要在网页中连续出现多于一个的半角空格, 也尽量少使用全角空格（英文字符集下,全角空格会变成乱码）,空白应该尽量使用 text-indent, padding, margin, hspace, vspace 以及透明的 gif 图片来实现。</p>
<p>中英文混排时,我们尽可能的将英文和数字定义为 verdana 和 arial 两种字体。</p>
<p>行距建议用百分比来定义,常用的两个行距的值是 line-height:120%/150%</p>
<p>网站中的路径全部采用相对路径,一般链接到某一目录下的缺省文件的链接路径不必写全名,如我们不必这样：&lt;a href=”aboutus/index.htm”&gt; 而应该这样：&lt;a href=”aboutus/”&gt;&lt;/a&gt;</p>
<h2>四、Web标准设计规范（XHTML+CSS）</h2>
<p>为页面添加正确的DOCTYPE，过渡型（Transitional）、严格型（Strict）、框架型（Frameset）</p>
<p>设定名字空间（Namespace）</p>
<p>声明编码语言</p>
<p>用小写字母书写所有的标签元素与属性名字</p>
<p>为图片添加 alt 属性</p>
<p>给所有属性值加引号””</p>
<p>关闭所有的标签，包括空标签</p>
<p>用CSS定义元素外观</p>
<p>用结构化元素代替无意义的垃圾代码</p>
<p>给每个表格和表单加上id</p>
<p>所有的XML标记都必须合理嵌套</p>
<p>把所有&lt;&gt;和&amp;特殊符号用编码表示； &amp;lt; &amp;gt; &amp;amp;等</p>
<p>给所有属性赋一个值，没有值的就重复本身</p>
<p>不要在注释内容中使用“&#8211;”</p>
<p>推荐定义font-family : “Lucida Grande”, Verdana, Lucida, Arial, Helvetica, 宋体,sans-serif;</p>
<p>辅助图片一律用背景处理</p>
<p>尽量多使用群选择器、派生选择器来书写具有层次结构的CSS样式</p>
<p>合理使用类别选择器与id选择器，同个ID只用一个地方，相同CLASS可用多个地方</p>
<p>链接伪类一定要按照a:link、a:visited、a:hover、a: active的顺序书写</p>
<p>多使用具有良好风格的注释，便于今后的维护与重构</p>
<h2>HTML编码规范</h2>
<p>一个标记必须占用一行 不得出现两个标记在同一行的情况(同一标记的关闭标记除外)</p>
<p>静态文件内容必须包含在标记中间</p>
<p>标记必须包含在标记中间</p>
<p>对于需要关闭的标记，必须同其关闭标记同时出现，不得出现交叉包含的语句</p>
<p>最高一级的父标记采用左对齐顶格方式书写</p>
<p>下一级标记采用左对齐向右缩进一个Tab的方式书写</p>
<p>在下一级依此类推，分别左对齐相对于父标记向右缩进一个Tab的方式书写</p>
<p>同一级标记的首字符上下必须对齐</p>
<h2>JavaScript编码规范</h2>
<h3>变量命名规范</h3>
<p>常量以及全局变量名必须全部使用大写字母</p>
<p>变量名首字母必须小写</p>
<p>变量名必须使用其类型的所写字符串开始。各种类型的所写字符串如下：</p>
<p>整型变量：int；长整型变量：lng；浮点型变量：flt；双精度变量：dbl</p>
<p>对象引用变量：obj；字符串变量:str；Date类型变量：dtm</p>
<p>变量名必须采用有意义的单词命名</p>
<p>变量名除首字母小写外，其他单词首字符必须大写</p>
<p>如果变量名过长可以使用单词缩写，除了被广泛了解的单词缩写以外，所有使用单词缩写的变量名必须在定义时给出注释</p>
<h3>变量使用规范</h3>
<p>变量使用前必须定义。没有定义的变量禁止使用</p>
<p>变量的使用尽量缩小到小的作用域</p>
<p>对象命名规范</p>
<p>text输入框：txt  button按钮：btn    select下拉选择框：sel    option项：opt</p>
<p>form表单：frm  frame框架：fra    hidden表单项：hdn    div标记：div</p>
<p>span标记：span  对话框对象：dlg    窗口对象：win</p>
<h3>函数以及子过程命名规范</h3>
<p>函数命名必须使用动词＋名词对的方式，并且能够体现函数的功能</p>
<p>函数命名的动词前缀必须是同函数功能相关的完整动词</p>
<p>函数命名第一个单词的首字母小写，后面每一个单词的首字母大写</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2011/06/23/web-development-guide-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>腾讯推出抄袭作品 《植物大战僵尸》被山寨</title>
		<link>http://wangwenhao.net/2010/08/18/plants-vs-zombies-of-tencent/</link>
		<comments>http://wangwenhao.net/2010/08/18/plants-vs-zombies-of-tencent/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 05:34:33 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[娱乐]]></category>
		<category><![CDATA[植物大战僵尸]]></category>
		<category><![CDATA[游戏]]></category>
		<category><![CDATA[腾讯]]></category>
		<category><![CDATA[葫芦娃]]></category>

		<guid isPermaLink="false">http://wangwenhao.net/?p=414</guid>
		<description><![CDATA[以“抄袭”著称的腾讯公司近日再度为网友奉献了一款“抄袭”之作，一款模仿《植物大战僵尸》的web游戏《葫芦娃大战群妖》被正式推出。由知名游戏制作公司PopCap Games于2009年推出的益智策略类塔防御战游戏《植物大战僵尸》早已火爆全球。以iPhone版和iPad为例，该款游戏长期高居前三位。腾讯称其为首款3D网游大作《寻仙》，官方描述为：以为人熟知的中国传统神话为题材，独创的战斗体系、动作感很强的法宝大战、首创的多人骑宠、结婚、师徒等多样交互关系和丰富的副本活动让你体验不一样的仙侣生活。 下面让我们来看看腾讯公司推出的这款山寨版游戏截图，僵尸迷们看完后恐怕将彻底“内牛满面”。 正版《植物大战僵尸》截图 山寨版截图 2010年7月，《计算机世界》刊登了一篇题为《“狗日的”腾讯》封面头条文章，文中把腾讯作为互联网公敌进行批判，将互联网商业竞争写成了不 可调和的恩怨。详细叙述了联众、奇虎360等与腾讯之间的恩怨情仇。该文言辞辛辣、“刀刀见血”，并伴有联众创始人鲍岳桥等“受害者”声泪俱下的哭诉。 《计算机世界》更采用了一只身中多刀的腾讯企鹅作为其封面，称“山寨”的腾讯一直在模仿。]]></description>
			<content:encoded><![CDATA[<p><strong>以“抄袭”著称的腾讯公司近日再度为网友奉献了一款“抄袭”之作，一款模仿《植物大战僵尸》的web游戏《葫芦娃大战群妖》被正式推出。</strong>由知名游戏制作公司PopCap Games于2009年推出的益智策略类塔防御战游戏《植物大战僵尸》早已火爆全球。以iPhone版和iPad为例，该款游戏长期高居前三位。腾讯称其为首款3D网游大作《寻仙》，官方描述为：以为人熟知的中国传统神话为题材，独创的战斗体系、动作感很强的法宝大战、首创的多人骑宠、结婚、师徒等多样交互关系和丰富的副本活动让你体验不一样的仙侣生活。</p>
<p>下面让我们来看看腾讯公司推出的这款山寨版游戏截图，僵尸迷们看完后恐怕将彻底“内牛满面”。</p>
<p>正版《植物大战僵尸》截图</p>
<p><a href="http://wangwenhao.net/wp-content/uploads/2010/08/12363901113029123.jpg"><img class="alignnone size-full wp-image-415" title="12363901113029123" src="http://wangwenhao.net/wp-content/uploads/2010/08/12363901113029123.jpg" alt="" width="500" height="375" /></a></p>
<p>山寨版截图</p>
<p><a href="http://wangwenhao.net/wp-content/uploads/2010/08/123639163723701.jpg"><img class="alignnone size-full wp-image-417" title="123639163723701" src="http://wangwenhao.net/wp-content/uploads/2010/08/123639163723701.jpg" alt="" width="500" height="489" /></a></p>
<p><a href="http://wangwenhao.net/wp-content/uploads/2010/08/12364021340888115.jpg"><img class="alignnone size-full wp-image-420" title="12364021340888115" src="http://wangwenhao.net/wp-content/uploads/2010/08/12364021340888115.jpg" alt="" width="500" height="383" /></a></p>
<p><a href="http://wangwenhao.net/wp-content/uploads/2010/08/1236413272797403.jpg"><img class="alignnone size-full wp-image-418" title="1236413272797403" src="http://wangwenhao.net/wp-content/uploads/2010/08/1236413272797403.jpg" alt="" width="500" height="385" /></a></p>
<p><a href="http://wangwenhao.net/wp-content/uploads/2010/08/12364141740789406.jpg"><img class="alignnone size-full wp-image-416" title="12364141740789406" src="http://wangwenhao.net/wp-content/uploads/2010/08/12364141740789406.jpg" alt="" width="500" height="371" /></a></p>
<p><a href="http://wangwenhao.net/wp-content/uploads/2010/08/1236425795378711.jpg"><img class="alignnone size-full wp-image-419" title="1236425795378711" src="http://wangwenhao.net/wp-content/uploads/2010/08/1236425795378711.jpg" alt="" width="500" height="386" /></a></p>
<p>2010年7月，《计算机世界》刊登了一篇题为《“狗日的”腾讯》封面头条文章，文中把腾讯作为互联网公敌进行批判，将互联网商业竞争写成了不 可调和的恩怨。详细叙述了联众、奇虎360等与腾讯之间的恩怨情仇。该文言辞辛辣、“刀刀见血”，并伴有联众创始人鲍岳桥等“受害者”声泪俱下的哭诉。 《计算机世界》更采用了一只身中多刀的腾讯企鹅作为其封面，称“山寨”的腾讯一直在模仿。</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2010/08/18/plants-vs-zombies-of-tencent/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>“大家点”的盈利模式</title>
		<link>http://wangwenhao.net/2010/08/17/dajiadian-profit-mode/</link>
		<comments>http://wangwenhao.net/2010/08/17/dajiadian-profit-mode/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 12:18:30 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[大家点]]></category>
		<category><![CDATA[拍卖]]></category>
		<category><![CDATA[盈利]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://wangwenhao.net/?p=412</guid>
		<description><![CDATA[今天发现一个竞拍网站大家点，研究了一下，发现这个模式真是很有创意。 它的规则是这样的，竞拍需要拍点，每拍一次使用一个拍点，每个拍点2块钱。每个商品都是从零元起拍的，对于那些比较贵的商品，每次加价幅度一分钱，那些比较便宜的商品每次加价幅度6分钱。 看似能用很便宜的价钱买到商品，仔细算算，这部分成本其实转嫁到了其他人的身上。 拿今天下午4点还是竞拍的任天堂 iQue DSi （带摄像头）来说，网站标明原价1369元，最后拍得的人价钱是9.08元，每次加价幅度1分，就是说总竞价次数是908次，908*2=1816元，拍得的玩家竞拍次数348次，他共花了348*2=696元，他买折扣约是50%，网站赚了1816-1369=447元。 那没拍到的人的钱就算白扔了吗？不是的，没有拍到想要的商品，可以以差价换购，刚刚的拍点折合成人民币，你再补上差价就可以得到商品，理论上，你使用的拍点是不会浪费掉的。 在大家都在拍DSi拍得如火如荼的时候，我发现一个键盘没有人理，顺手点了一下，以0.42元的价格拍得……运费30元……也算有了收获。]]></description>
			<content:encoded><![CDATA[<p>今天发现一个竞拍网站<a href="http://www.dajiadian.com/invite/link?sid=wangwenhao" target="_blank">大家点</a>，研究了一下，发现这个模式真是很有创意。</p>
<p>它的规则是这样的，竞拍需要拍点，每拍一次使用一个拍点，每个拍点2块钱。每个商品都是从零元起拍的，对于那些比较贵的商品，每次加价幅度一分钱，那些比较便宜的商品每次加价幅度6分钱。</p>
<p>看似能用很便宜的价钱买到商品，仔细算算，这部分成本其实转嫁到了其他人的身上。</p>
<p>拿今天下午4点还是竞拍的任天堂 iQue DSi （带摄像头）来说，网站标明原价1369元，最后拍得的人价钱是9.08元，每次加价幅度1分，就是说总竞价次数是908次，908*2=1816元，拍得的玩家竞拍次数348次，他共花了348*2=696元，他买折扣约是50%，网站赚了1816-1369=447元。</p>
<p>那没拍到的人的钱就算白扔了吗？不是的，没有拍到想要的商品，可以以差价换购，刚刚的拍点折合成人民币，你再补上差价就可以得到商品，理论上，你使用的拍点是不会浪费掉的。</p>
<p>在大家都在拍DSi拍得如火如荼的时候，我发现一个键盘没有人理，顺手点了一下，以0.42元的价格拍得……运费30元……也算有了收获。</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2010/08/17/dajiadian-profit-mode/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>jQuery Mobile来了！jQuery发布移动设备版开发项目</title>
		<link>http://wangwenhao.net/2010/08/14/jquery-mobile-coming/</link>
		<comments>http://wangwenhao.net/2010/08/14/jquery-mobile-coming/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 14:40:13 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[我的工作]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://wangwenhao.net/?p=397</guid>
		<description><![CDATA[为了让移动设备也能用上jQuery，jQuery开发团队发布了jQuery移动设备版开发项目jQuery Mobile Project（http://jquerymobile.com）。jQuery Mobile不仅会给主流移动平台带来jQuery核心库，而且会发布一个完整统一的jQuery移动UI框架。 对于大名鼎鼎的jQuery开发团队来说，当然要让jQuery Mobile支持全球主流的移动平台，而不仅仅是北美流行的移动平台。想要知道jQuery Mobile项目将要做些什么吗？请看jQuery移动平台策略；想要知道jQuery Mobile项目将会支持哪些浏览器吗？请看Mobile Graded Browser Support。 jQuery Mobile开发团队正在紧张工作，准备那些要支持的移动设备并针对这些设备进行测试。他们争取在今年晚些时候发布jQuery Mobile。如果你想为jQuery Mobile提供帮助，请加入jQuery Mobile社区的讨论组。 jQuery Mobile项目已经得到了Palm, Mozilla等移动浏览器厂商的赞助。 jQuery Mobile开发团队说：“能开发这个项目，我们非常兴奋。移动Web太需要一个跨浏览器的框架，让开发人员开发出真正的移动Web网站。我们将尽全力去满足这样的需求。”]]></description>
			<content:encoded><![CDATA[<p><a href="http://wangwenhao.net/wp-content/uploads/2010/08/2010081417452389.jpg"><img class="alignnone size-medium wp-image-398" title="2010081417452389" src="http://wangwenhao.net/wp-content/uploads/2010/08/2010081417452389-300x235.jpg" alt="" width="300" height="235" /></a></p>
<p>为了让移动设备也能用上jQuery，jQuery开发团队发布了jQuery移动设备版开发项目jQuery Mobile Project（<a href="http://jquerymobile.com" target="_blank">http://jquerymobile.com</a>）。jQuery Mobile不仅会给主流移动平台带来jQuery核心库，而且会发布一个完整统一的jQuery移动UI框架。</p>
<p>对于大名鼎鼎的jQuery开发团队来说，当然要让jQuery Mobile支持全球主流的移动平台，而不仅仅是北美流行的移动平台。想要知道jQuery Mobile项目将要做些什么吗？请看<a href="http://jquerymobile.com/strategy/" target="_blank">jQuery移动平台策略</a>；想要知道jQuery Mobile项目将会支持哪些浏览器吗？请看<a href="http://jquerymobile.com/gbs/" target="_blank">Mobile Graded Browser Support</a>。</p>
<p>jQuery Mobile开发团队正在紧张工作，准备那些要支持的移动设备并针对这些设备进行测试。他们争取在今年晚些时候发布jQuery Mobile。如果你想为jQuery Mobile提供帮助，请加入jQuery Mobile社区的<a href="http://forum.jquery.com/jquery-mobile" target="_blank">讨论组</a>。</p>
<p><a href="http://wangwenhao.net/wp-content/uploads/2010/08/2010081419412417.jpg"><img class="alignnone size-medium wp-image-399" title="IMG_0543" src="http://wangwenhao.net/wp-content/uploads/2010/08/2010081419412417-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>jQuery Mobile项目已经得到了Palm, Mozilla等移动浏览器厂商的赞助。</p>
<p>jQuery Mobile开发团队说：“能开发这个项目，我们非常兴奋。移动Web太需要一个跨浏览器的框架，让开发人员开发出真正的移动Web网站。我们将尽全力去满足这样的需求。”</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2010/08/14/jquery-mobile-coming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于URL的一些不可不知的知识</title>
		<link>http://wangwenhao.net/2010/08/09/you-must-know-about-url/</link>
		<comments>http://wangwenhao.net/2010/08/09/you-must-know-about-url/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 13:23:51 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://www.wangwenhao.net/2010/08/09/%e5%85%b3%e4%ba%8eurl%e7%9a%84%e4%b8%80%e4%ba%9b%e4%b8%8d%e5%8f%af%e4%b8%8d%e7%9f%a5%e7%9a%84%e7%9f%a5%e8%af%86/</guid>
		<description><![CDATA[URL设计是Web设计中常被忽视的东西，事实上URL非常重要，这不仅是一个网页唯一的路径，还涉及到你的站点是否干净，友好。本文讲述URL这个司空见惯的Web元素中包含的大量不应为忽视的知识，准则与最佳实践。需要注意的是W3C建议使用URI取代URL一说。 关于URL的一些准则 首先是与URL有关的一些准则。 一个URL必须唯一地，永久地代表一个在线对象 URL的最基本的使命是唯一地代表Internet上的一个对象，URL必须和Internet上的对象一对一匹配。然而现实中，这很难实现，我们经常可以通过多个URL到达同一个页面，比如，http://mysite.com/product/tv 和http://mysite.com/product?name=tv，这种情形在现代CMS中更是比比皆是，针对这个问题，SEO moz有一篇很好的文章，讲到了如何使用Canonical URL机制解决站点中的重复URL问题。 URL应该是永久的，这就要求你在站点上线前就非常严谨地规划URL。如果有一天，你不得不更改URL，一定使用HTTP 301机制，告诉浏览器和搜索引擎，你的那个URL 所代表的对象，已经搬迁到新地址，这个机制可以保证你旧地址所获得PR不会被清零。 尽可能用户友好 这是URL设计的根本，你的URL应该为最终用户而设计。保持URL友好的一个好办法是在保证可读性的同时让它尽可能短。比如/about 就好过/about-acme-corp-page，当然，保持简短不能牺牲可读性，/13d2一类的地址短则短矣，但并不友好。如果要在Twitter，Facebook一类的社会媒体网络分享你的URL，可以使用Bit.ly一类的网址缩短工具，但这种工具产生的缩短URL 并不友好，在WordPress一类的CMS 中，可以使用PrettyLink Pro或Short URL plugin一类的可控制的地址缩短插件。 URL 的设计切忌使用一些对用户来说没有意义的内容，比如数据库的 ID 号，/products/23这样的URL地址对用户是极不友好的，应当使用/products/ballpoint-pen一类的地址。 保持一致性 站点内的所有URL必须保持一致的格式和结构，这样可以为用户带来信任感，如果你必须更改URL格式和结构，需要使用HTTP 301机制。 可预测的URL 这也是URL一致性的一个表现，如果你的URL拥有很好的一致性，用户可以根据URL猜测别的内容的URL，假如/events/2010/01指向2010年1月份的日程内容，那 /events/2009/01应当指向2009年1月的日程。 /events/2010应当指向2010年全年的日程。 /events/2010/01/21应当指向2010年1月21日的日程。 URL中的关键词 URL中应该包含本页重点内容的关键词，比如/posts/2010/07/02/trip-best-buy-memory-cards一类的URL本身就是对页面内容的反应。在URL包含重点内容关键词，也可以提高SEO性能。SEO的一个很重要的原则就是，在URL地址中包含内容关键词。 关于URL的技术细节 下面说的是有关URL 的一些技术细节。 URL不应包含.html,aspx,cfm一类的后缀 这类信息对最终用户是没有意义的，却占了额外的空间，一个例外是.atom,.rss,.json 一类的特殊地址，这类地址是有特别的意义的。译者注：在某些虚拟主机式Web 服务器，这种做法未必现实。 URL不应包含WWW部分 WWW 部分并不包含任何意义，是一个额外的负担，不友好。可以使用HTTP 301机制，将www.domain.com 定向到domain.com 。 URL的格式 URL 的格式如下: domain.com/[key information]/[name]/?[modifiers] Key information部分一般代表信息的类型或类别。Modifiers部分则属于查询字符串范畴，它不应当代表数据结构，应当代表数据的修饰。Key information部分应当尽可能简短，同时应当表现出一种层级关系，比如http://domain.com/posts/servers/nginx-ubuntu-10.04，或 http://domain.com/news/tech/2007/11/05/google-announces-android。 [...]]]></description>
			<content:encoded><![CDATA[<p>URL设计是Web设计中常被忽视的东西，事实上URL非常重要，这不仅是一个网页唯一的路径，还涉及到你的站点是否干净，友好。本文讲述URL这个司空见惯的Web元素中包含的大量不应为忽视的知识，准则与最佳实践。需要注意的是<a href="http://www.w3.org/TR/uri-clarification/" target="_blank">W3C建议使用URI取代URL一说</a>。</p>
<p><font size="3"><strong>关于URL的一些准则</strong></font></p>
<p>首先是与URL有关的一些准则。</p>
<p><strong>一个URL必须唯一地，永久地代表一个在线对象</strong></p>
<p>URL的最基本的使命是唯一地代表Internet上的一个对象，URL必须和Internet上的对象一对一匹配。然而现实中，这很难实现，我们经常可以通过多个URL到达同一个页面，比如，<a href="http://mysite.com/product/tv">http://mysite.com/product/tv</a> 和<a href="http://mysite.com/product?name=tv">http://mysite.com/product?name=tv</a>，这种情形在现代CMS中更是比比皆是，针对这个问题，<a href="http://www.seomoz.org/blog/canonical-url-tag-the-most-important-advancement-in-seo-practices-since-sitemaps" target="_blank">SEO moz有一篇很好的文章，讲到了如何使用Canonical URL机制解决站点中的重复URL问题</a>。</p>
<p>URL应该是永久的，这就要求你在站点上线前就非常严谨地规划URL。如果有一天，你不得不更改URL，一定使用<a href="http://en.wikipedia.org/wiki/URL_redirection#HTTP_status_codes_3xx" target="_blank">HTTP 301</a>机制，告诉浏览器和搜索引擎，你的那个URL 所代表的对象，已经搬迁到新地址，这个机制可以保证你旧地址所获得<a href="http://en.wikipedia.org/wiki/Pagerank" target="_blank">PR</a>不会被清零。</p>
<p><strong>尽可能用户友好</strong></p>
<p>这是URL设计的根本，你的URL应该为最终用户而设计。保持URL友好的一个好办法是在保证可读性的同时让它尽可能短。比如/about 就好过/about-acme-corp-page，当然，保持简短不能牺牲可读性，/13d2一类的地址短则短矣，但并不友好。如果要在Twitter，Facebook一类的社会媒体网络分享你的URL，可以使用Bit.ly一类的网址缩短工具，但这种工具产生的缩短URL 并不友好，在<a href="http://wordpress.org"target="_blank"rel="external"title="wordpress.org" >WordPress</a>一类的CMS 中，可以使用<a href="http://prettylinkpro.com/" target="_blank">PrettyLink Pro</a>或<a href="http://wordpress.org/extend/plugins/short-url-plugin/" target="_blank">Short URL plugin</a>一类的可控制的地址缩短插件。</p>
<p>URL 的设计切忌使用一些对用户来说没有意义的内容，比如数据库的 ID 号，/products/23这样的URL地址对用户是极不友好的，应当使用/products/ballpoint-pen一类的地址。</p>
<p><strong>保持一致性</strong></p>
<p>站点内的所有URL必须保持一致的格式和结构，这样可以为用户带来信任感，如果你必须更改URL格式和结构，需要使用HTTP 301机制。</p>
<p><strong>可预测的URL</strong></p>
<p>这也是URL一致性的一个表现，如果你的URL拥有很好的一致性，用户可以根据URL猜测别的内容的URL，假如/events/2010/01指向2010年1月份的日程内容，那   <br />/events/2009/01应当指向2009年1月的日程。    <br />/events/2010应当指向2010年全年的日程。    <br />/events/2010/01/21应当指向2010年1月21日的日程。</p>
<p><strong>URL中的关键词</strong></p>
<p>URL中应该包含本页重点内容的关键词，比如/posts/2010/07/02/trip-best-buy-memory-cards一类的URL本身就是对页面内容的反应。在URL包含重点内容关键词，也可以提高SEO性能。SEO的一个很重要的原则就是，在URL地址中包含内容关键词。</p>
<p><strong><font size="3">关于URL的技术细节</font></strong></p>
<p>下面说的是有关URL 的一些技术细节。</p>
<p><strong>URL不应包含.html,aspx,cfm一类的后缀</strong></p>
<p>这类信息对最终用户是没有意义的，却占了额外的空间，一个例外是.atom,.rss,.json 一类的特殊地址，这类地址是有特别的意义的。译者注：在某些虚拟主机式Web 服务器，这种做法未必现实。</p>
<p><strong>URL不应包含WWW部分</strong></p>
<p>WWW 部分并不包含任何意义，是一个额外的负担，不友好。可以使用HTTP 301机制，将<a href="http://www.domain.com">www.domain.com</a> 定向到domain.com 。</p>
<p><strong>URL的格式</strong></p>
<p>URL 的格式如下:</p>
<p>domain.com/[key information]/[name]/?[modifiers]</p>
<p>Key information部分一般代表信息的类型或类别。Modifiers部分则属于查询字符串范畴，它不应当代表数据结构，应当代表数据的修饰。Key information部分应当尽可能简短，同时应当表现出一种层级关系，比如<a href="http://domain.com/posts/servers/nginx-ubuntu-10.04">http://domain.com/posts/servers/nginx-ubuntu-10.04</a>，或 <a href="http://domain.com/news/tech/2007/11/05/google-announces-android">http://domain.com/news/tech/2007/11/05/google-announces-android</a>。</p>
<p><a href="http://www.google.com/support/news_pub/bin/answer.py?hl=en&amp;amp;amp;answer=68323" target="_blank">Google News对新闻源有一个有趣的要求</a>，<a href="http://www.google.com"target="_blank"rel="external"title="Google" >Google</a>要求新闻源页面的URL 中必须包含至少3位唯一的数字，因为他们会忽略年份数字，因此，应该使用一个5位或5位以上的数字。另外，也应该<a href="http://www.google.com/support/news_pub/bin/answer.py?answer=74288" target="_blank">提供Google News 站点地图</a>。如果你想向 Google 提供新闻，必须按这样的结构提供URL，当然保持一致性，可以预测性也是必需的。</p>
<p><strong>使用小写字符</strong></p>
<p>URL中所有字符都应使用小写，这更容易阅读。</p>
<p><strong>URL中包含的行为元素</strong></p>
<p>URL查询字符串中可能包含一些表示行为的元素，比如 show, delete, edit 等。非破坏性的行为可以体现在URL中，破坏性的行为应该使用POST 。 </p>
<p><strong>使用URL友好字符</strong></p>
<p>在URL中体现网页标题的时候，往往会用到一些特殊字符，应当把它们转换为URL友好字符：   <br />全部大写字符换成小写    <br />诸如é一类的字符应转换成对应的e    <br />空格使用短划线代替    <br />诸如!,@,#,$,%,^,&amp;,*一类的字符应该使用短划线代替    <br />双短划线应该使用单短划线代替    <br />另外，没有必要的话，避免使用%20一类的URL逃逸符。</p>
<p><strong>更多观点</strong></p>
<p><a href="http://shiflett.org/blog/2010/may/url-sentences" target="_blank">Chris Shiflett</a>建议，可以使用一些类似句子的URL，如：chriscoyier.net/authored/digging-into-wordpress/     <br />chriscoyier.net/has-worked-for/chatman-design/     <br />chriscoyier.net/likes/trailer-park-boys     <br />jacobwg.com/thinks/this-post/is/basically-done</p>
<p><strong>译者补充：URL 的长度上限</strong></p>
<p>URL的最大长度是多少？<a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html" target="_blank">W3C的HTTP协议</a>并没有限定，然而，在实际应用中，经过试验，不同浏览器和Web服务器有不同的约定：    <br />IE 的URL长度上限是2083字节，其中纯路径部分不能超过2048字节。    <br /> Firefox浏览器的地址栏中超过65536 字符后就不再显示。    <br /> Safari 浏览器一致测试到80000字符还工作得好好的。    <br /> Opera 浏览器测试到190000字符的时候，还正常工作。</p>
<p>Web 服务器：   <br />Apache Web服务器在接收到大约4000 字符长的URL时候产生413 Entity Too Large错误。    <br />IIS 默认接收的最大URL是16384 字符。</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2010/08/09/you-must-know-about-url/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DokuWiki时区修正</title>
		<link>http://wangwenhao.net/2010/08/05/dokuwiki-timezone/</link>
		<comments>http://wangwenhao.net/2010/08/05/dokuwiki-timezone/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 08:56:57 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[DokuWiki]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[时区]]></category>

		<guid isPermaLink="false">http://www.wangwenhao.net/?p=380</guid>
		<description><![CDATA[昨天装了一个DokuWiki，但是时区显示老是不正确，配置里也没有选项可以设置。经过Google，方法如下： 打开doku.php //import variables $QUERY = trim&#40;$_REQUEST&#91;'id'&#93;&#41;; $ID &#160; &#160;= getID&#40;&#41;; $NS &#160; &#160;= getNS&#40;$ID&#41;; $REV &#160; = $_REQUEST&#91;'rev'&#93;; $ACT &#160; = $_REQUEST&#91;'do'&#93;; $IDX &#160; = $_REQUEST&#91;'idx'&#93;; date_default_timezone_set&#40;'PRC'&#41;; //添加一行 $DATE = $_REQUEST&#91;'date'&#93;; $RANGE = $_REQUEST&#91;'lines'&#93;; $HIGH = $_REQUEST&#91;'s'&#93;; 注意是PRC不是RPC，我就填错了，真丢人。 再看看时间，已经是显示正常了。]]></description>
			<content:encoded><![CDATA[<p>昨天装了一个<a href="http://www.dokuwiki.org"target="_blank"rel="external"title="DokuWiki" >DokuWiki</a>，但是时区显示老是不正确，配置里也没有选项可以设置。经过<a href="http://www.google.com"target="_blank"rel="external"title="Google" >Google</a>，方法如下：</p>
<p>打开doku.php</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//import variables</span><br />
<span style="color: #000088;">$QUERY</span> <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$ID</span> &nbsp; &nbsp;<span style="color: #339933;">=</span> getID<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$NS</span> &nbsp; &nbsp;<span style="color: #339933;">=</span> getNS<span style="color: #009900;">&#40;</span><span style="color: #000088;">$ID</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$REV</span> &nbsp; <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'rev'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$ACT</span> &nbsp; <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'do'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$IDX</span> &nbsp; <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'idx'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #990000;">date_default_timezone_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'PRC'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//添加一行</span><br />
<span style="color: #000088;">$DATE</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'date'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$RANGE</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'lines'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$HIGH</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_REQUEST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'s'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span></div></div>
<p>注意是PRC不是RPC，我就填错了，真丢人。</p>
<p>再看看时间，已经是显示正常了。</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2010/08/05/dokuwiki-timezone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Mobile Pack插件使用简介</title>
		<link>http://wangwenhao.net/2010/08/03/wordpress-mobile-pack-introduce/</link>
		<comments>http://wangwenhao.net/2010/08/03/wordpress-mobile-pack-introduce/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 09:05:04 +0000</pubDate>
		<dc:creator>Wang Wen Hao</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[手机]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.wangwenhao.net/?p=377</guid>
		<description><![CDATA[WordPress Mobile Pack插件是WordPress上的一个著名的手机插件，它会自动识别手机浏览器，给手机访问的用户提供一个友好的界面。以前就装过，苦于以前空间的限制，移动域名一直无法配置，其实可以不用配置，但是我是一个追求完美的人啊！ 使用其实很简单，没什么配置的话装上就能用，这里着重解释一下它的几个访问模式。 1. Browser detection: 这个模式下不需要配置移动域名，插件会自动识别浏览器选择显示手机版网站或者桌面版网站。 2. Domain mapping: 这个模式下插件根据访问的域名来选择显示网站版本。需要配置一个移动域名。 3. BOTH: browser detection and domain mapping: 顾名思义，兼容以上两种模式。同样也需要配置移动域名。不同的是当用手机访问的时候会让你自己选择需要访问的版本。第二次访问的时候就会自动选择上次所访问的版本。 下面就是怎么配置移动域名： 按我的例子，主站是www.wangwenhao.net，移动域名是m.wangwenhao.net。 在空间的DNS配置里新建一个子域名m，将它定向到和www.wangwenhao.net相同的目录下就可以了，关于这个我纠结了很久，网上的资料也很少，尝试了很多次才成功的……]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org"target="_blank"rel="external"title="wordpress.org" >WordPress</a> Mobile Pack插件是WordPress上的一个著名的手机插件，它会自动识别手机浏览器，给手机访问的用户提供一个友好的界面。以前就装过，苦于以前空间的限制，移动域名一直无法配置，其实可以不用配置，但是我是一个追求完美的人啊！</p>
<p>使用其实很简单，没什么配置的话装上就能用，这里着重解释一下它的几个访问模式。</p>
<p>1. Browser detection: 这个模式下不需要配置移动域名，插件会自动识别浏览器选择显示手机版网站或者桌面版网站。</p>
<p>2. Domain mapping: 这个模式下插件根据访问的域名来选择显示网站版本。需要配置一个移动域名。</p>
<p>3. BOTH: browser detection and domain mapping: 顾名思义，兼容以上两种模式。同样也需要配置移动域名。不同的是当用手机访问的时候会让你自己选择需要访问的版本。第二次访问的时候就会自动选择上次所访问的版本。</p>
<p>下面就是怎么配置移动域名：</p>
<p>按我的例子，主站是www.wangwenhao.net，移动域名是m.wangwenhao.net。</p>
<p>在空间的DNS配置里新建一个子域名m，将它定向到和www.wangwenhao.net相同的目录下就可以了，关于这个我纠结了很久，网上的资料也很少，尝试了很多次才成功的……</p>
]]></content:encoded>
			<wfw:commentRss>http://wangwenhao.net/2010/08/03/wordpress-mobile-pack-introduce/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

