<?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>陈超群’s Blog</title>
	<atom:link href="http://www.51jquery.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.51jquery.com</link>
	<description>活着，开心最重要！</description>
	<lastBuildDate>Mon, 28 Dec 2009 12:39:35 +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>清空数据库中所有表数据的SQL</title>
		<link>http://www.51jquery.com/2009-12/drop-all-table-sql/</link>
		<comments>http://www.51jquery.com/2009-12/drop-all-table-sql/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 12:35:34 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[Sqlserver]]></category>
		<category><![CDATA[Sql]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/2009-12/%e6%b8%85%e7%a9%ba%e6%95%b0%e6%8d%ae%e5%ba%93%e4%b8%ad%e6%89%80%e6%9c%89%e8%a1%a8%e6%95%b0%e6%8d%ae%e7%9a%84sql/</guid>
		<description><![CDATA[某些虚似主机就是讨厌，申请好数据库后，数据库名就自动给你无情地建好了，改名也没有权限。如果要换数据库，只能一个一个的去删表，太繁琐，所以需要一次性地把表给删除了！

declare crsr insensitive cursor
for SELECT [name] FROM DBO.SYSOBJECTS
WHERE OBJECTPROPERTY(ID,N'IsTable')=1 and type = 'U' and [name] &#60;&#62; 'dtproperties' --and crdate...
for read only
open crsr
declare @tblName sysname
fetch next from crsr into @tblName 

while (@@fetch_status&#60;&#62;-1)
begin
EXEC('drop table '+@tblName)
fetch next from crsr into @tblName
end
close crsr
deallocate crsr --删除以释放游标



 
如果只是清空数据，把11行的drop改成truncate就行了。
]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-12/drop-all-table-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我们这一代</title>
		<link>http://www.51jquery.com/2009-12/our-generation/</link>
		<comments>http://www.51jquery.com/2009-12/our-generation/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 14:33:38 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[生活点滴]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/2009-12/%e6%88%91%e4%bb%ac%e8%bf%99%e4%b8%80%e4%bb%a3/</guid>
		<description><![CDATA[
每天都在到处寻找盲目的快乐
没人愿意去浪费时间了解你的规则
你和我到底想什么 只会做谁也不会说
其实快乐无非就是对你的摆脱
如果没有你的追逐也无事可做
别问我到底想什么 因为我不会对你说
我们这一代 不需要忍耐 世界已打开 一切会清白
我们这一代 心不会等待 世界已打开 一切会清白
用快乐去等待 用希望等待的并不存在
等待 用快乐去等待 用摆脱等待 但有希望等待的并不存在
这个世界已太复杂 难分真与假
靠你自己 才能得到 生命的启发
 
 
曾经狂迷摇滚乐，因为在其中可以听到很多发泄的声音。真的很想跟着放声音呐喊，但现在我已没有力气。
]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-12/our-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【转】12个asp.net MVC最佳实践</title>
		<link>http://www.51jquery.com/2009-11/12-asp-net-mvc-best-practices/</link>
		<comments>http://www.51jquery.com/2009-11/12-asp-net-mvc-best-practices/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 15:57:03 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[asp.net mvc]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/?p=557</guid>
		<description><![CDATA[转自：&#60;译&#62;12个asp.net MVC最佳实践
       上一周我我在罗马进行了两场对于开发完成不久的http://www.dotnetromacesta.org/的Asp.net MVC的演讲。而其中一场演讲内容是关于我对于Asp.net MVC最佳实践的看法.因为这场演讲是在意大利进行的，为了大家能更好的阅读，我将演讲所用的ppt翻译成英文。
     
关于Controller的最佳实践

1-删除AccountController
    让Demo代码在你的程序中是一个非常不好的做法。请永远不要使用AccountController.
2-隔离外部网络和Controller
     如果依赖HttpContext，数据访问类，配置，日志等，则会让程序难以测试，修改或者进一步开发。
3-使用一个IOC容器
    使达到第二条最佳实践更加容易，使用IOC容器管理所有外部依赖我使用 Ninject v2，这种IOC容器有很多，如果需要的话，你甚至可以自己实现一个。
4-和“神奇的strings”说不
    永远不要使用ViewData[“key”]，而要为每一个视图创建一个ViewModel,从而使用强类型的ViewPage&#60;ViewModel&#62;.
    神奇的Strings是很邪恶的，因为你可能由于错误的拼写而导致视图出错,而强类型的Model不仅可以有智能感知，而且错误是在编译时获取而不是在运行时。
5-创建你自己的“个人惯例”
    使用Asp.net MVC作为你个人（或者公司）的参考构架的基础，你还可以使Controller和View继承于你自己的基类而不是默认的基类来让你的惯例更加透彻。
6-注意Verbs
    就算不使用最合适的HTTP Verb,最要也要采用PRG模式，(Post-Redirect-Get):使用Get来显示数据，使用Post来修改数据。
  
关于Model的最佳实践

7–DomainModel != ViewModel
     DomainModel代表着相应的域，但ViewModel却是为View的需要而创建。这两者之间或许(一般情况下都)是不同的，此外DomainModel是数据加上行为的组合体，是由复杂的变量类型组成的并且具有层次。而ViewModel只是由一些String等简单变量类型组成。如果想移除冗余并且容易导致出错的ORM代码,可以使用AutoMapper.如果想要了解更多，我推荐阅读：ASP.NET MVC View Model Patterns.
8-为“共享”的数据使用ActionFilter
     这是我自己的解决方案，或许需要在未来发帖继续探讨。通常情况下，你都不希望你的Controller获取的数据在几个不同的View之间共享，我的方法则是使用ActionFilter来获取在几个不同View之间共享的数据，然后用合适的View来显示。
关于View的最佳实践

9-不要使用CodeBehind模式
      永远不要。
10-尽可能的写HTML代码
      我认为Web开发人员必须的习惯于写HTML(或者CSS和JAVASCRIPT).所以最好少用仅仅用来隐藏HTML代码的HTMLHelper（比如HTML.Submit或者HTML.Button）.这也是我会在未来的帖子里讨论的。
11-如果有if语句，使用HTMLHelper
      View必须是哑巴（Controller是瘦子而Model是胖子）,如果你发现自己在使用if语句，那就写一个HTMLHelper来隐藏选择条件语句.
12-仔细的选择你的View引擎
     默认的引擎室WebFormViewEngine，IMHO并不是最好的引擎，我更倾向于选择Spark ViewEngine,因为对于我来说这个引擎更适合MVC的View.我喜欢的是“dominates the flow and that code should fit seamlessly”对于每一次循环来说IF语句都会被定义在”HTML标签“中.
DEMO代码和幻灯片的下载
     你可以下载幻灯片或者demo代码
]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-11/12-asp-net-mvc-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery.live()函数分析</title>
		<link>http://www.51jquery.com/2009-10/jquery-live/</link>
		<comments>http://www.51jquery.com/2009-10/jquery-live/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 14:17:58 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/?p=553</guid>
		<description><![CDATA[平时在使用jQuery进行AJAX操作的时候，新生成的元素事件会失效，有时候不得不重新绑定一下事件，但是这样做很麻烦。例如评论分页后对评论内容的JS验证会失效等。在jQuery1.3之前有一个插件会解决这个问题http://plugins.jquery.com/project/livequery ，jQuery1.3增加了一个live()方法，下面是手册上的说明：
jQuery 1.3中新增的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数（比如click事件）。也能绑定自定义事件。
目前支持 click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup。
还不支持 blur, focus, mouseenter, mouseleave, change, submit
与bind()不同的是，live()一次只能绑定一个事件。
这个方法跟传统的bind很像，区别在于用live来绑定事件会给所有当前以及将来在页面上的元素绑定事件(使用委派的方式)。比如说，如果你给页面上所有的li用live绑定了click事件。那么当在以后增加一个li到这个页面时，对于这个新增加的li，其click事件依然可用。而无需重新给这种新增加的元素绑定事件。
.live()与流行的liveQuery插件很像，但有以下几个主要区别：

.live 目前只支持所有事件的子集，支持列表参考上面的说明。
.live 不支持liveQuery提供的“无事件”样式的回调函数。.live只能绑定事件处理函数。
.live 没有&#8221;setup&#8221;和&#8221;cleanup&#8221;的过程。因为所有的事件是委派而不是直接绑定在元素上的。

要移除用live绑定的事件，请用die方法
用法示例：
&#60;div class=&#8221;myDiv&#8221;&#62;&#60;/div&#62;
jquery:
$(&#8220;.myDiv&#8221;).live(&#8220;click&#8221;, function(){
alert(&#8220;clicked!&#8221;);
});
如果使用javascript动态创建一个class为mydiv的元素，点击元素依然会有弹出。为什么使用live后就有了呢？这是因为jquery利用了事件的冒泡机制，直接把事件绑定在了document上，然后通过event.target找出事件的来源。这跟jquery.livequery插件不一样，jquery.livequery每20毫秒做一次检查，如有新生成则重新绑定一次事件。
使用live当然有利也有弊：
好处就是：元素更新时不用反复去定义事件。
坏处就是：把事件绑定在document上会在页面上每一个元素都呼叫一次，如使用不当会严重影响性能。而且不支持blur, focus, mouseenter, mouseleave, change, submit。
]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-10/jquery-live/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC项目中文件上传的几种方式</title>
		<link>http://www.51jquery.com/2009-10/upload-file/</link>
		<comments>http://www.51jquery.com/2009-10/upload-file/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 08:06:46 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[asp.net]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[asp.net mvc]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/?p=521</guid>
		<description><![CDATA[在ASP.NET MVC Framework中，上传文件真是超级简单，看代码：
View

&#60;form action="&#60;%=Url.Action("Process") %&#62;" enctype="multipart/form-data" method="post"&#62;
&#60;input name="up1" type="file" /&#62;
&#60;input type="submit" /&#62;
&#60;/form&#62;

Action

public ActionResult Process(HttpPostedFileBase up1)
{//参数名与name名一致即可       
    up1.SaveAs(Server.MapPath("~/" + up1.FileName));
    return Content("上传成功,文件名为:"+up1.FileName);
}

当然这是MVC框架简化了我们的操作,实际上内部实现跟以前的是一样的,多文件上传冒似不能用这种方式实现，只能使用Request.Files["up1"]来获取!
无刷新上传
jQuery
jQuery是个好东西,使用jQuery.form.js可以进入完全无刷新的世界,最基本使用的方法:

$('#myFormId').ajaxForm();

当你点击submit按钮后,你的客户端提交就变成无刷新的了&#8230;更高级的使用方法和下载地址请看官方地址:http://malsup.com/jquery/form/
使用了jquery.form.js，就可以使用无刷新上传了，不论什么无刷新上传，它的原理始终还是在页面中动态嵌入一个iframe，使用iframe去上传文件。。这个时候就要注意一个问题了，iframe请求的服务器端地址不能输入浏览器无法打开的ContentType，否则浏览器会弹出下载框，如果上传完后，你输出一个JSON数据，浏览器将无法打开它。会弹出下载框。可以看看官方的例子！看看他是怎么做的！
SwfUpload
SWFUpload最初是由Vinterwebb.se开发的一个客户端的上传工具. 它结合了FLASH和JavaScript的功能，以提供一种超越了传统的浏览器中&#60;input type=&#8221;file&#8221; /&#62;标签提供的文件上传功能。
SWFUpload提供的主要功能:

在文件选择对话框中能够进行文件多选
页面无刷新的上传
提供上传进度的事件回调，实时显示上传进度
良好的浏览器兼容性
采用了命名空间以兼容其它JS的库 (例如 jQuery, Prototype, 等等)
对FLASH8和FLASH9播放器的支持


说明文档地址
SwfUpload DEMO下载
JQuery和SwfUpload是客户端的东西，所以说在任何WEB开发语言上都可以使用上了，SwfUpload还可以实现时时进度条,如果你玩过flick的图片上传,就知道这样的体验是多么的棒了!真的强烈推荐使用！
]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-10/upload-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>软件开发最重要的一环 &#8211; 文档【转】</title>
		<link>http://www.51jquery.com/2009-09/developer-guide/</link>
		<comments>http://www.51jquery.com/2009-09/developer-guide/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 12:26:32 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[杂七杂八]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/?p=515</guid>
		<description><![CDATA[其实一直有很多话想说，关于每一个话题，在说之前我都会google一下，看看其它人怎么说的。。。下面这篇文章说得太好了。跟我目前情况非常符合，也跟我的想法是一致的！所以每次我都只有转载的份，因为别人都比我讲得好~~~
原文转自：http://www.360doc.com/content/080820/20/1523_1560175.html
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;原文开始分隔线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
什么是软件开发最重要的一环？
从不同的角度可以有不同的观点, 　但如何保证一个执行中的项目在顺利和按时进行？最简单的办法就是检查有关文档.   不然就只能听程序员汇报了。而程序员永远是对自己的进展最乐观的人。他们对软件原型到产品的时间的估计往往令人啼笑皆非。 《人月神话》一书中对此有很好的描述。一个没有文档或者文档很糟糕的项目一定是一个背后有问题的项目.    所以说，软件开发最重要的一环，但也是最常被忽视的一环，就是软件开发文档，而不是通常想象的Coding.  
 
世界上没有一个软件工程师喜欢写文档.  因为他们常常感觉自己的工作象个艺术家，而不是工程师。这有点象没有一个诗人喜欢逐句注释自己的诗词,   没有一个画家喜欢用文字来描述自己作品的意境.   他们觉得这是多余的，甚至是画蛇添足的。因为他们的作品是不可描述的。或者说，无法有对应的文档的。但是,  软件项目工程已经不再是一门可以随意发挥的艺术,   而是一项必须遵循规范的系统工程.   文档就是软件从艺术转化为工程的一个标志.  这里我们需要的不是朦胧的美,  而是清楚和科学的工程描述。  我比较喜欢软件工程师这个称呼，而不是程序开发员。因为软件项目工程与写程序不是同一个概念。写程序只是软件项目工程的一部分。工程师这个词有很多内涵，它不同于艺术家，也不同于科学家。虽然软件开发可能常常界于三者之间。 但作为一个项目执行者来说，他必须首先是一个严谨的工程师。
 
软件工程师不喜欢写文档还很多实际的原因.  比如说,   他们可能从来没有受到这方面的训练和缺乏相关实践；写文档像写code一样，不是一开始就能写好的。他们也可能不认识到文档的重要性；有的则可能认为文档是给别人看的,  自己不需要，就懒得写；有的软件工程师甚至故意不好好写文档, 　这样就没有其他人能够取代他们的工作.    跟跨国大公司的老总讨论国内员工的管理，他们说，国内软件工程师最大的问题，一是沟通，特别是英语沟通。二就是不认为他们写的code 是属于公司的，而是属于他们自己的．但如果没有文档， 那么想属于公司都没有办法，因为一切都在他头脑里， 他一走就都带走了。
 
一般的软件工程师都认为coding  最重要.  当他们当上经理之后, 或者办了几个软件公司之后,   他们才认识到,   没有文档的 code  对公司财富的积累其实没有什么帮助。特别是对做软件项目工程的公司来说。没有好的文档管理的软件公司一定是失败的.   现在网上开源的code 什么方面的都有，但开源的问题就是没有好的文档。许多人认为code 是实的，文档是虚的．其实不是这样的．为什么说文档这样重要呢？
 
第一，最直接的原因，有好文档的code　其他人才能看得懂．特别是一些复杂一点的程序，比如编解码器，没有文档如何能在几个月内看懂？除非你以前写过类似的程序。现在反编译工具越来越发达，其实有没有code 都是差不太多的， 特别是对Java这样的程序。.
 
第二，认真说来，文档与code一样，其实是项目不可分割的一部分。
 
第三，文档是项目管理的表现形式，是项目与其他方面沟通的媒体，也是项目管理的工具。 软件项目，与程序不再是一个概念。　
 
我们知道，现代项目管理的概念是从现代飞机制造开始的，现代飞机有几万到几十万个零件，必须有一整套管理方法，管理的体现方式就是一整套相应的文档。 我们知道，一个产品， 比如说医疗设备，要通过美国FDA是非常难的。FDA 除了设备的质量检查以外，更要看你的生产过程及其管理，怎么看，就是看文档。你这个零件是从哪里采购的，有关文档在那里？如果拿不出来，直接就当掉了。
 
最近在一个软件公司作交接,   意外的发现项目经理竟然不知道他管理的项目实际上是用什么技术来开发的.  不管是否是项目经理真的不懂, 　还是故意忽悠.   如果要这样的事情不会发生,  只有一招, 文档管理。
 　
用一个通俗一点的比喻,   没有文档的软件,  就像没有账目的财务.   最后他把钱和原始发票单据交给你就完事,   账目是没有的.   要知道钱怎么用的?  自己去查发票吧．要了解软件的内容？自己去看源代码吧。
 
让软件工程师写文档,   常常听到的回答是,  太忙了, 没有时间写,   如果我是经理, 　那我就会让他们停下来,  先把文档写好.  因为我知道项目已经出了问题了。不然的话,  从公司的角度来说，他们只是在浪费时间而已．文档管理好的公司都很难成功，没有文档管理的公司长期来说一定是失败的.  软件项目管理，说穿了其实就是软件文档管理．你能够让工程师写出很好的很完全的文档，你的管理就成功了．　
 
在美国所有的软件公司，都要求完整的，完善的， 和符合UML [...]]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-09/developer-guide/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>javascript中实现反射</title>
		<link>http://www.51jquery.com/2009-09/reflection-in-javascript/</link>
		<comments>http://www.51jquery.com/2009-09/reflection-in-javascript/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 13:08:30 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/?p=511</guid>
		<description><![CDATA[今天在群里有人问这样一个问题:

string name = "xxx";
string key = ???;
Console.Write(key);//输出name

问号处怎么写?三句代码的问题,想要实现可不容易啊,而且这位仁兄问的是如何用C#来实现,学过C#的人都知道,C#是强类型语言,在.NET里，可以使用System.Reflection.Assembly.Load来实现反射。不过这里我觉得没有确定类型，用反射冒似也无法实现（不确定，有时间去复习一下MSDN），好久没有折腾过C#了，一直在玩前端，第一反应就是用JS来实现这位仁兄的问题，尽管不是他想要的，嘿嘿。没关系，我自己写着玩儿。

&#60;script type="text/javascript"&#62;
var name = "superman";
var key = (function() {
    for (var item in window) {
        if (window[item] === "superman") {
            return item;
       [...]]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-09/reflection-in-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>良好的用户体验，必须是全方位的【转】</title>
		<link>http://www.51jquery.com/2009-09/user-experience/</link>
		<comments>http://www.51jquery.com/2009-09/user-experience/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 11:33:21 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[用户体验]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/?p=508</guid>
		<description><![CDATA[文章转自:http://www.20ju.com/content/V117883.htm,与作者颇有同感,故转到博客来!
用户体验（User Experience，简称UX 或 UE）是一种纯主观的在用户使用一个产品（服务）的过程中建立起来的心理感受。因为它是纯主观的，就带有一定的不确定因素。个体差异也决定了每个用户的真实体验是无法通过其他途径来完全模拟或再现的。但是对于一个界定明确的用户群体来讲，其用户体验的共性是能够经由良好设计的实验来认识到。计算机技术和互联网的发展，使技术创新形态正在发生转变，以用户为中心、以人为本越来越得到重视，用户体验也因此被称做创新2.0模式的精髓。”—–百度百科

现在，几乎人人都在谈、在做用户体验，有为了用户体验而用户体验的；有不知何为用户体验，就乱指挥一通的；有做了几天可用性改进就宣称飞跃的…..当然，也有很多是踏踏实实为广大人民做实事，做好产品设计的。
不管怎样，以下的思考文字中希望有那么一点点是闪光的。
 
看了百度百科的词条，结合自己的经验，可以这么理解：用户体验，是通过接触某样有形或者无形的事物后，建立在用户身上的一个范围比较广的情感叠加，跟乐高积木是一样一样的，堆得好，可以很高，某一块不稳，就会全倒下。那，到底有多广呢？
1.一个购书体验：流程流畅度
给自己买一本书，我想到的是淘宝和当当，有人会说：买书当然去当当或者卓越了。我不是这么认为的，首先，都是网购，淘宝也卖书，并且能讨价还价，能了解更多细节，而当当不能，但如果在淘宝上价格太高，没有当当划算，且不是很急着买，那我会选择当当。
—–这里面有两个点：网络购物习惯养成的条件反射 和  买卖家之间的交流 ，这两个是体验的一部分。
决定上当当后，打开首页，logo旁的“十年品质 放心低价”，有点暖，而导航下左边的这个绿色突出的区域也表明，当当主要核心业务就是书！整个配色在视觉上挺舒服，而导航和搜索也让我很快找到我要买的书—《教父》。

——站点的载入速度是个大问题，当当基本能在3秒内打开首页，不错的优化。广告语和用色贴合国内消费人群的心理，起码对于我来说，觉得：可信赖，不太乱。
找到我要的书后，我点击了购买，进入了我的购物车，有一个疑虑、不舒服：

—–不知道这个是好，还是坏，可能对于不同的人，有不同的感受，这个推荐本身是很好的，但让我疑惑的是，它大面积的空间和众多黄色按钮，让我找不着北了，因为到这步，我心里想着：该结算了，但处于商业目的，推荐区域在一定程度上(或许我比较闲的时候，推荐对我有用)干扰了我。
接下来的结算流程很顺利，我选择的是货到付款，很好的是：最后提示我，发货地点是广州，会在2-3天后发货，邮箱也很快收到订单生成的邮件。接下来就是等待，三天后，接到声音不太舒服的电话，说是当当网的，我想，应该是书到了。可怜的是，对方收钱时，零钱不够。
—–最终是买到书了，快递的小伙子找不了我的零钱，我也没要了，书的包装不太好。
整个过程，总体打分8.5分。总的来说，这本书的购买的体验流畅度是很满意的，没有出现意外的中断，要知道体验的流程能完整的走完才意味着，这个产品、这个服务，是可用的，这是根基，其他的视觉效果和折扣等等，都是建立在他之上。而流畅度，就跟用户在这个过程中碰到疑惑和不解的强烈程度是成反比的，想提高流畅度，就需要捋清楚，让这个核心购买流程以最短的时间完成，减少干扰。
2.边缘体验，一样的重要
上面的购书例子，有个地方很重要，那就是最后的线下体验，我把他作为边缘体验的一种，有别于线上的核心业务。
订单下来后，系统能根据我提交的送货地址，选出最近的发货地点，减少物流时间，并且让购买者知道，这个点是好的，说明：我一直为你着想。
但快递环节却有点问题，因为存在一定的不可控因素。送快递的人，需要经过一定的培训，否则，是在砸当当的牌子。电话中的语气让人不舒服，书的包装问题也让人不安，书角磨破了，就这两个点，购买者就有可能把整个交易撤销。
属于边缘体验范畴的还有很多，例如：你到了友商网举办的一个论坛，门前的海报是否能够传递本次论坛的信息、是否能够将友商网的品牌进行诠释，给你的良好感觉有多少？再例如市场营销人员的着装和谈吐，在用户眼里，在一定程度上，也在间接体验他们的产品，起码，穿着拖鞋的营销，不会给人好的感觉。
边缘体验，一样重要。
3.无形的体验
无形的体验有两种，一种是某用户在使用、体验产品后得出口碑传播给另外的用户或者潜在用户，对于后者，他已开始无形情感体验；另一种是用内而外的，是生产此产品的团队或者说这个企业由内发出的一些信息，有意的或无意的信息。
对于第一种，有时候口碑会决定了某个用户是否与产品有缘，举个例子，小姨买了一个xx牌子的冰箱，用了两个月，灯管坏了，打开冰箱门灯不亮了，联系维修后好景不长，还是坏，于是她对死党说：以后打死也不会买xx牌的东西了，这个死党有可能以后就跟这个牌子绝缘了，因为她对“它”的无形体验很不好。当然，这个口碑产生的根源，就是产品质量本身。
而第二种范围包括的就比较大了，如果是上市公司，那么你的财务状况是否良好；组织结构是不是频繁大调整；员工整体对外的信息放射是否正面；网络媒体，传统媒体传播的信息是否有利公司发展（不管是不是软文），这些，都是用户或者潜在用户、普通人可能接触到的一面，这也是一个无形的体验。
4.引领用户的“体验”
在初步发展阶段，无数产品和服务都是跟随用户需求，用户需要什么，就给什么，以找准需求点为重中之重，这个是对的，但到了产品成熟期，到了市场占有率足够高后，需要考虑的，就是引导潮流，引领用户朝双赢的方向。web中的视觉概念设计，汽车中的概念车，走的，就是这个路线。
5.核心产品体验
这个放在最后是因为是人都知道，核心产品，必须做好可用性，通过不断迭代，适当做好减法，提供一个体验好的产品。具体到各个产品和服务各不相同，无需展开。
总之，用户体验设计并不复杂，但需要耐得住性子，需要注意触角，因为，从接触这个品牌那一刻起，用户体验就在进行，是叠加还是消耗呢？就看能否尽量做到人人UE，能否将这些好的idea引导、聚合。
 
更多关于用户体验的文章：
浅谈如何量化用户体验
B2C，比的是客户体验（转帖）
google一大堆
]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-09/user-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>折腾iframe自动高</title>
		<link>http://www.51jquery.com/2009-09/iframe-autoheight/</link>
		<comments>http://www.51jquery.com/2009-09/iframe-autoheight/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 13:32:34 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/?p=495</guid>
		<description><![CDATA[通常做后台的时候,都喜欢用框架,在用frameset的时候,把系统分为左右两块,或者上左右两块不会出现自动高的情况,如果使用了iframe,就要碰上iframe自动高的问题,这不,我现在就折腾上了,可把哥给累着了!
网上搜索&#8221;iframe自动高&#8221;会有很多的解决方案,我试了很多,但都存在问题,大多只解决了iframe加载完后的静态内容实现的自动高,iframe加载完后,对DOM操作,或者表格挤压引起的高度变化却不起作用.为此郁闷了N久!
如果iframe里面内容不进行DOM操作，可以使用这种最简单的方式

&#60;iframe id="iframe" src="iframe.html" scrolling="no" frameborder="0" onload="this.height=this.contentWindow.document.documentElement.scrollHeight"&#62;&#60;/iframe&#62;

反之,在iframe页里进行DOM操作,或者表格展现(表格展现如果挤压会改变高度)可以使用下面的方法

&#60;iframe id="iframe" src="iframe_b.html" scrolling="no" frameborder="0"&#62;&#60;/iframe&#62;
&#60;script type="text/javascript"&#62;
    function reinitIframe() {
        var iframe = document.getElementById("iframe");
        try {
            var bHeight = iframe.contentWindow.document.body.scrollHeight;
    [...]]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-09/iframe-autoheight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>推荐一个超强大的jquery弹出层插件</title>
		<link>http://www.51jquery.com/2009-09/nyromodal/</link>
		<comments>http://www.51jquery.com/2009-09/nyromodal/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 14:33:05 +0000</pubDate>
		<dc:creator>陈超群</dc:creator>
				<category><![CDATA[杂七杂八]]></category>

		<guid isPermaLink="false">http://www.51jquery.com/?p=486</guid>
		<description><![CDATA[官方网站:http://nyromodal.nyrodev.com/ 有非常多的设置和事件参数,超强大,比之前用过的jquery.blockUI,jquery.thickbox都要强大,又多了一种选择。
幽默一下后睡觉觉：
1. 你让我滚，我滚了。你让我回来，对不起，滚远了
2. 流氓不可怕，就怕流氓有文化……
3. 走牛B的路，让傻B去说吧！
4. 开车无难事，只怕有新人！
6. 矿难在检讨中继续，楼价在控制中上升！
7. XP不发威，你当我是DOS啊！
8. 英雄不问出路，流氓不看岁数！
9. 好好活着，因为我们会死很久!!!
10. 人又不聪明，还学人家秃顶！！
11. 没什么事不要找我，有事更不用找我
12. 宁和明白人打一架，不跟sb说句话
13. 再牛b的肖邦，也弹不出老子的悲伤！
14. 只要锄头舞的好，那有墙角挖不倒？
15. 连广告也信，读书读傻了吧！
16. 要在江湖混，最好是光棍！！
17. 步要和我比懒，我懒得和你比。
19. 早上长睡不起；晚上视睡如归!
21. 女为悦己者容男为悦己者穷！
22. 秃驴，敢跟贫道抢师太?
23. 犯贱是普遍真理，你我只是其中之一
24. 唯女人与英语难过也，唯老婆与工作难找也!
25. 赚别人的钱，让贫穷见鬼去吧。
26. 就算是believe　中间也藏了一个lie
27. 钱不是问题，问题是没钱！
30. 怀才就像怀孕，时间久了才能让人看出来。
31. 今天心情不好.我只有四句话想说.包括这句和前面的两句.我的话说完了
32. 人不能在一棵树上吊死，要在附近几棵树上多死几次试试
33. 走别人的路,让别人走投无路
34. 思想有多远，你就给我滚多远
35. 驴是的念来过倒
36. 上Google上百度一下。
37. 你以为我会眼睁睁地看着你去送死？我会闭上眼睛的。
38. 请你以后不要在我面前说英文了，OK？
39. 好久没有人把牛皮吹的这么清新脱俗了！
40. 一觉醒来，天都黑了。
41. 钱可以解决的问题都不是问题。
42. 不吃饱哪有力气减肥啊？
43. 问君能有几多愁，恰似一群太监上青楼
44. 钞票不是万能的，有时还需要信用卡。
45. 我允许你走进我的世界，但决不允许你在我的世界里走来走去。
46. 人怕出名猪怕壮，男怕没钱女怕胖。
47. 珍惜生活——上帝还让你活着，就肯定有他的安排。
48. 工作的最高境界就是看着别人上班，领着别人的工资。
49. 爱情就像便便，水一冲就再也回不来了~爱情就像便便，来了之后挡也挡不住~爱情就像便便，每次都一样又不太一样~爱情就像便便，有时努力了很久却只是个屁！
]]></description>
		<wfw:commentRss>http://www.51jquery.com/2009-09/nyromodal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
