<?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>Iqst&#039; blog</title>
	<atom:link href="http://www.iqst.cn/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iqst.cn/blog</link>
	<description>关注电子商务、用户体验、产品设计、生活以及爱</description>
	<lastBuildDate>Tue, 18 May 2010 15:39:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>大型网站改版策略</title>
		<link>http://www.iqst.cn/blog/2010/05/upgrade-step/</link>
		<comments>http://www.iqst.cn/blog/2010/05/upgrade-step/#comments</comments>
		<pubDate>Wed, 12 May 2010 14:18:49 +0000</pubDate>
		<dc:creator>iqst</dc:creator>
				<category><![CDATA[产品经理]]></category>
		<category><![CDATA[改版]]></category>

		<guid isPermaLink="false">http://www.iqst.cn/blog/?p=51</guid>
		<description><![CDATA[任何一次改版都是有风险的，就算抛开技术风险不说，由用户的使用惯性所带来的问题，也是无法避免的。
对于大型电子商务网站来说，无论是哪里出了问题，也无论是故障多么短暂，都是任何一个人所缩承担不起的。 所以，大型网站的改版，要遵循一定策略，将风险降到最低。 声明一点，要实现逐步替换式改版，那么新版页面必须与旧版不同，假设旧版是a.html，那么新版应该是b.html；
第一步、邀请用户在线体验新版，并提交反馈，通过小规模用户的使用来发现问题并尽快修正，同时也算是进行改版告知，以对用户表示尊重，为新版造势，减轻用户心里压力；
第二步、一旦确定新版不存在重大bug和问题，可以逐步将流量从旧版引入新版，一般有两种方法： a、假设有e1、e2、e3、e4……等多个入口连接到a.html，那么可以先把e1入口的流量引入b.html，进行观察，稳定后在把e2的流量引入，并最终把所有入口的流量都引入b.html； b、假设有s1、s2、s3、s4……等多台服务器，那么可以先把s1服务器上的流量引入b.html，进行观察，稳定后在把s2的流量引入，并最终把所有服务器的流量都引入b.html；
第三步、一定要在b.html页面提供返回a.html页面的入口，不仅缓解用户的焦虑，一旦遇到严重问题，用户依然可返回旧版进行操作，降低了系统风险，因为即使最及时的反馈，发现问题并处理还是需要时间的，另外，b.html一定要给出bug反馈入口，让用户随时可以把发现的问题告诉pm；
最后、所有流量都导入b.html后，接下来要做的就是详细收集用户的问题，观察用户的反馈，并紧密关注新老页面的流量比例，直到a.html页面流量趋近于0，此次改版基本算无风险实施成功。
当然，此方案也存在问题，实施到第二步时，用户有可能每次刷新出来的页面都不同，有时新版有时又是旧版，虽然此点可能带来用户迷惑，但此问题也是可以解决的，如： 在a.html页面注明：邀请您体验新版…… 在b.html页面注明：您正在使用新版……，如果遇到问题或不习惯，可以随时返回旧版……
对于大型网站，系统稳定性是第一位的，缜密的新旧版替换策略，是一个称职产品经理所必须掌握的方法。

]]></description>
			<content:encoded><![CDATA[<p>任何一次改版都是有风险的，就算抛开技术风险不说，由用户的使用惯性所带来的问题，也是无法避免的。<br />
对于大型电子商务网站来说，无论是哪里出了问题，也无论是故障多么短暂，都是任何一个人所缩承担不起的。 所以，大型网站的改版，要遵循一定策略，将风险降到最低。 声明一点，要实现逐步替换式改版，那么新版页面必须与旧版不同，假设旧版是a.html，那么新版应该是b.html；</p>
<p>第一步、邀请用户在线体验新版，并提交反馈，通过小规模用户的使用来发现问题并尽快修正，同时也算是进行改版告知，以对用户表示尊重，为新版造势，减轻用户心里压力；<br />
第二步、一旦确定新版不存在重大bug和问题，可以逐步将流量从旧版引入新版，一般有两种方法： a、假设有e1、e2、e3、e4……等多个入口连接到a.html，那么可以先把e1入口的流量引入b.html，进行观察，稳定后在把e2的流量引入，并最终把所有入口的流量都引入b.html； b、假设有s1、s2、s3、s4……等多台服务器，那么可以先把s1服务器上的流量引入b.html，进行观察，稳定后在把s2的流量引入，并最终把所有服务器的流量都引入b.html；<br />
第三步、一定要在b.html页面提供返回a.html页面的入口，不仅缓解用户的焦虑，一旦遇到严重问题，用户依然可返回旧版进行操作，降低了系统风险，因为即使最及时的反馈，发现问题并处理还是需要时间的，另外，b.html一定要给出bug反馈入口，让用户随时可以把发现的问题告诉pm；<br />
最后、所有流量都导入b.html后，接下来要做的就是详细收集用户的问题，观察用户的反馈，并紧密关注新老页面的流量比例，直到a.html页面流量趋近于0，此次改版基本算无风险实施成功。</p>
<p>当然，此方案也存在问题，实施到第二步时，用户有可能每次刷新出来的页面都不同，有时新版有时又是旧版，虽然此点可能带来用户迷惑，但此问题也是可以解决的，如： 在a.html页面注明：邀请您体验新版…… 在b.html页面注明：您正在使用新版……，如果遇到问题或不习惯，可以随时返回旧版……</p>
<p>对于大型网站，系统稳定性是第一位的，缜密的新旧版替换策略，是一个称职产品经理所必须掌握的方法。</p>
<p><a href="http://www.iqst.cn/blog/wp-content/uploads/2010/05/step.jpg"><img title="step" src="http://www.iqst.cn/blog/wp-content/uploads/2010/05/step-271x300.jpg" alt="" width="271" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iqst.cn/blog/2010/05/upgrade-step/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>不可用、隐藏、自我解释</title>
		<link>http://www.iqst.cn/blog/2009/09/buy-button/</link>
		<comments>http://www.iqst.cn/blog/2009/09/buy-button/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 06:23:35 +0000</pubDate>
		<dc:creator>iqst</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[不可用]]></category>
		<category><![CDATA[界面]]></category>
		<category><![CDATA[自我解释]]></category>
		<category><![CDATA[购买按钮]]></category>
		<category><![CDATA[隐藏]]></category>

		<guid isPermaLink="false">http://www.iqst.cn/blog/?p=34</guid>
		<description><![CDATA[现实中的界面一般来说比较固定，这里的固定指的是位置、颜色、可见性一般不会随意变化，比如电灯开关，无论是否有电或者电灯是否出故障，开关中的按钮都会在那里，不会消失。
然而网络就不一样，你可以很轻易的隐藏一个按钮，或将一个输入框置为不可编辑。这样做其实有很大风险，你的设计一定能够“不言而喻”或者“自我解释”吗？如果不能，那对用户来说，就是件很需要“make he think”的事情。
对于电子商务网站，当商品无货时，购买按钮如何处理是个很有意思的问题，隐藏？改成文字？置为不可点击？改成“到货通知”？
当一个按钮不可用时，是隐藏它，还是保留它并给予解释？我倾向后者。因为：
隐藏按钮，等于是先制造了一个“疑问”，然后再给予解释；
保留按钮，在按钮上做些处理（灰色，不可点），给予解释，在用户看来也许更容易接受。
从另一个方面讲，“购买”按钮对于一个电子商务网站，存在的意义已经不仅仅是一个普通的按钮，而更像一个风向标，就好象搜索引擎不能没有“搜索”按钮一样，从用户习惯及情感上来讲，它不在那里，你会觉得缺少了什么，越是普通的用户，越会有这样的感觉。
PS：上图中，欧酷的做法比较规矩合理，新蛋和当当的比较取巧，卓越和京东的做法不推荐，
]]></description>
			<content:encoded><![CDATA[<p>现实中的界面一般来说比较固定，这里的固定指的是位置、颜色、可见性一般不会随意变化，比如电灯开关，无论是否有电或者电灯是否出故障，开关中的按钮都会在那里，不会消失。</p>
<div id="attachment_41" class="wp-caption alignnone" style="width: 407px"><img class="size-full wp-image-41" title="b" src="http://www.iqst.cn/blog/wp-content/uploads/2009/09/b.png" alt="开关" width="397" height="250" /><p class="wp-caption-text">开关</p></div>
<p>然而网络就不一样，你可以很轻易的隐藏一个按钮，或将一个输入框置为不可编辑。这样做其实有很大风险，你的设计一定能够“不言而喻”或者“自我解释”吗？如果不能，那对用户来说，就是件很需要“make he think”的事情。</p>
<p>对于电子商务网站，当商品无货时，购买按钮如何处理是个很有意思的问题，隐藏？改成文字？置为不可点击？改成“到货通知”？</p>
<div id="attachment_38" class="wp-caption alignnone" style="width: 536px"><img class="size-full wp-image-38" title="buy button" src="http://www.iqst.cn/blog/wp-content/uploads/2009/09/other.png" alt="电子商务网站的购买按钮" width="526" height="810" /><p class="wp-caption-text">电子商务网站的购买按钮</p></div>
<p>当一个按钮不可用时，是隐藏它，还是保留它并给予解释？我倾向后者。因为：<br />
<strong><span style="color: #008000;">隐藏按钮，等于是先制造了一个“疑问”，然后再给予解释；</span></strong></p>
<p><strong><span style="color: #008000;">保留按钮，在按钮上做些处理（灰色，不可点），给予解释，在用户看来也许更容易接受。</span></strong></p>
<p><strong></strong>从另一个方面讲，“购买”按钮对于一个电子商务网站，存在的意义已经不仅仅是一个普通的按钮，而更像一个风向标，就好象搜索引擎不能没有“搜索”按钮一样，从用户习惯及情感上来讲，它不在那里，你会觉得缺少了什么，越是普通的用户，越会有这样的感觉。</p>
<p>PS：上图中，欧酷的做法比较规矩合理，新蛋和当当的比较取巧，卓越和京东的做法不推荐，</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iqst.cn/blog/2009/09/buy-button/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>小甜饼不一定都是美味的 &#8211; Cookie传输优化</title>
		<link>http://www.iqst.cn/blog/2009/09/cookie-domain/</link>
		<comments>http://www.iqst.cn/blog/2009/09/cookie-domain/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 01:56:29 +0000</pubDate>
		<dc:creator>iqst</dc:creator>
				<category><![CDATA[前端]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[cookie 网站优化]]></category>
		<category><![CDATA[网站优化]]></category>

		<guid isPermaLink="false">http://www.iqst.cn/blog/?p=20</guid>
		<description><![CDATA[最近在做网站的优化，其中一项包括：对静态文件（如图片，JS脚本文件及CSS文件）启用一个新的独立域名，以杜绝不必要的Cookie传送，提高请求速度并减少带宽。
我们知道，当向HTTP服务器请求某个URL时，浏览器将该URL与客户主机中存储的所有Cookie比较，如果发现域名相匹配Cookie，则匹配 Cookie中包含名字/值的那一行将被包含在HTTP请求头中，以保证依赖于Cookie的功能得以实现。
但是，当请求一个静态图片时，传输Cookie就没有任何意义了。

另外，Cookie的存取是不允许跨域的，这个很好理解，因为有时Cookie文件里会存储一些比较敏感或重要的信息，如果允许跨域读取，那么随便一个网站都可以取得目标网站的Cookie，这是非常危险的。利用这一点，我们可以将静态文件放在新的独立域名下，由于新域名下只放静态文件（最主要是图片和CSS，对于JS文件，如果涉及读写Cookie,那么还是要谨慎处理），并不会产生Cookie，所以请求静态文件时，是不会携带Cookie的，这样就提高了传输效率，减少了一定带宽。
Yslow中倡导的减少连接数，也是部分处于减少Cookie传输的目的，当然，启用了新域名，会增加域名解析的时间，需要权衡。
那么，这么做的效果如何呢？我们做如下假设：
网站日均用户100万，访问首页：30万
首页Cookie大小：0.05k
CSS文件数：2
JS文件数：10
未缓存图片数：50
那么无效Cookie =300000*0.05*2*10*50=15000000k=1.5G
（以上粗略估算，如有不准确的地方欢迎指出） 
网站流量越大，图片越多，这个数值也就越大，优化效果也会越明显，所以上了量级的网站，都会作此优化。
]]></description>
			<content:encoded><![CDATA[<p>最近在做网站的优化，其中一项包括：对静态文件（如图片，JS脚本文件及CSS文件）启用一个新的独立域名，以杜绝不必要的Cookie传送，提高请求速度并减少带宽。</p>
<p>我们知道，当向HTTP服务器请求某个URL时，浏览器将该URL与客户主机中存储的所有Cookie比较，如果发现域名相匹配Cookie，则匹配 Cookie中包含名字/值的那一行将被包含在HTTP请求头中，以保证依赖于Cookie的功能得以实现。</p>
<p>但是，当请求一个静态图片时，传输Cookie就没有任何意义了。</p>
<p><img class="alignnone size-full wp-image-31" title="firecookie" src="http://www.iqst.cn/blog/wp-content/uploads/2009/09/firecookie1.gif" alt="firecookie" width="670" height="246" /></p>
<p>另外，Cookie的存取是不允许跨域的，这个很好理解，因为有时Cookie文件里会存储一些比较敏感或重要的信息，如果允许跨域读取，那么随便一个网站都可以取得目标网站的Cookie，这是非常危险的。利用这一点，我们可以将静态文件放在新的独立域名下，由于新域名下只放静态文件（最主要是图片和CSS，对于JS文件，如果涉及读写Cookie,那么还是要谨慎处理），并不会产生Cookie，所以请求静态文件时，是不会携带Cookie的，这样就提高了传输效率，减少了一定带宽。</p>
<p>Yslow中倡导的减少连接数，也是部分处于减少Cookie传输的目的，当然，启用了新域名，会增加域名解析的时间，需要权衡。</p>
<p>那么，这么做的效果如何呢？我们做如下假设：</p>
<p>网站日均用户100万，访问首页：30万<br />
首页Cookie大小：0.05k<br />
CSS文件数：2<br />
JS文件数：10<br />
未缓存图片数：50</p>
<p>那么无效Cookie =300000*0.05*2*10*50=15000000k=<span style="color: #800000;">1.5G<br />
<span style="color: #000000;">（以上粗略估算，如有不准确的地方欢迎指出） </span></span></p>
<p>网站流量越大，图片越多，这个数值也就越大，优化效果也会越明显，所以上了量级的网站，都会作此优化。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iqst.cn/blog/2009/09/cookie-domain/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>仅仅是合并js并下移至页面底部</title>
		<link>http://www.iqst.cn/blog/2009/08/combine-javascript/</link>
		<comments>http://www.iqst.cn/blog/2009/08/combine-javascript/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 12:02:54 +0000</pubDate>
		<dc:creator>iqst</dc:creator>
				<category><![CDATA[前端]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Yslow]]></category>
		<category><![CDATA[优化]]></category>

		<guid isPermaLink="false">http://www.iqst.cn/blog/?p=14</guid>
		<description><![CDATA[最近在进行网站访问速度方面的优化，有些人觉得这个问题好难，方方面面都是影响访问速度的原因，错综复杂，一时感觉难以入手，OK!如果说之前你以这个为借口，那么现在我和你说，只要尽量遵循Yslow的判断标准来做，就会使你的网站改善很多。
那么效果是怎样的呢？我们仅仅把页面顶部的一些js进行了合并，并在页面顶部仅保留了首屏必须加载的js，比如焦点图脚本、minicart等，之后，我们把其它js移至了页面底部，就这些，效果怎么样？让我们来看看商品页的Bounce Rate(跳出率)：

看到那个明显的下降了吧，就是这样简单，一个小小的改进，就可以让页面加载的更快，让更多的用户留下来。
好了，现在关闭这篇文章，马上去看看你页面的代码，顶部是否有多余的js需要合并或者下移，Do it，等着看效果吧！
记得，页面访问速度是用户第一体验，是我们与用户都不可能逾越的一关。
]]></description>
			<content:encoded><![CDATA[<p>最近在进行网站访问速度方面的优化，有些人觉得这个问题好难，方方面面都是影响访问速度的原因，错综复杂，一时感觉难以入手，OK!如果说之前你以这个为借口，那么现在我和你说，只要尽量遵循<a class="wp-caption" href="http://developer.yahoo.com/performance/rules.html" target="_blank">Yslow</a>的判断标准来做，就会使你的网站改善很多。</p>
<p>那么效果是怎样的呢？我们仅仅把页面顶部的一些js进行了合并，并在页面顶部仅保留了首屏必须加载的js，比如焦点图脚本、minicart等，之后，我们把其它js移至了页面底部，就这些，效果怎么样？让我们来看看商品页的Bounce Rate(跳出率)：</p>
<p><img class="alignnone size-full wp-image-15" title="优化" src="http://www.iqst.cn/blog/wp-content/uploads/2009/08/js.gif" alt="优化" width="553" height="134" /></p>
<p>看到那个明显的下降了吧，就是这样简单，一个小小的改进，就可以让页面加载的更快，让更多的用户留下来。<br />
好了，现在关闭这篇文章，马上去看看你页面的代码，顶部是否有多余的js需要合并或者下移，Do it，等着看效果吧！</p>
<p>记得，页面访问速度是用户第一体验，是我们与用户都不可能逾越的一关。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iqst.cn/blog/2009/08/combine-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world！</title>
		<link>http://www.iqst.cn/blog/2009/07/hello-world/</link>
		<comments>http://www.iqst.cn/blog/2009/07/hello-world/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 14:28:38 +0000</pubDate>
		<dc:creator>iqst</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.iqst.cn/blog/?p=1</guid>
		<description><![CDATA[就让这里，从今天静静的开始！
]]></description>
			<content:encoded><![CDATA[<p>就让这里，从今天静静的开始！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iqst.cn/blog/2009/07/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
