人必须有所坚守,有所放弃,有所拒绝,因为天在头上。 人也可以选择活得有尊严有美感,如果,天在心里。

word to html

利用word.Application提供的方法,可以很轻易地将word文档转化为HTML等其它格式,下面就是实现的全部的代码:

Visual C#

wordToHTML.ASPx

<%@ 
Page language="c#" Codebehind="wordToHTML.ASPx.cs" AutoEventWireup="false"
Inherits="ASPxWebcs.wordToHTML" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 
Transitional//EN" >
<HTML>
<HEAD>
<title>wordToHTML</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 
7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" 
content="javascript">
<meta name="vs_targetSchema" 
content=" http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body 
MS_POSITIONING="GridLayout">
<form id="Form1" 
method="post" runat="server">
</form>
</body>
</HTML>

wordToHTML.ASPx.cs

using System;
using System.Collections;
using System.ComponentModel;
using 
System.Data;
using System.Drawing;
using 
System.Web;
using System.Web.SessionState;
using System.Web.UI;
using 
System.Web.UI.WebControls;
using 
System.Web.UI.HTMLControls;
using office;

namespace ASPxWebcs
{
/// <summary>
/// wordToHTML 的摘要说明。
/// 首先要添加引用:Microsoft 
word 9.0 Object Library
/// </summary>
public class wordToHTML : System.Web.UI.Page
{
private void Page_Load(object sender, 
System.EventArgs e)
{
// 
在此处放置用户代码以初始化页面
word.ApplicationClass word = new 
word.ApplicationClass();
Type wordType = word.GetType();
word.Documents docs = word.Documents;

// 打开文件
Type docsType = docs.GetType();
object fileName = "d:\tmp\aaa.doc";
word.Document doc = 
(word.Document)docsType.InvokeMember("Open", 
System.Reflection.BindingFlags.InvokeMethod, null, docs, new 
Object[] {fileName, true, true});

// 
转换格式,另存为
Type docType = doc.GetType();
object saveFileName = "d:\tmp\aaa.HTML";
//下面是Microsoft word 9 Object Library的写法,如果是10,可能写成:
//docType.InvokeMember("SaveAs", 
System.Reflection.BindingFlags.InvokeMethod,
null, doc, new 
object[]{saveFileName, word.WdSaveFormat.wdFormatFilteredHTML});
///其它格式:
///wdFormatHTML
///wdFormatDocument
///wdFormatDOSText
///wdFormatDOSTextLineBreaks
///wdFormatEncodedText
///wdFormatRTF
///wdFormatTemplate
///wdFormatText
///wdFormatTextLineBreaks
///wdFormatUnicodeText
docType.InvokeMember("SaveAs", 
System.Reflection.BindingFlags.InvokeMethod,
null, doc, new 
object[]{saveFileName, word.WdSaveFormat.wdFormatHTML});

// 退出 word
wordType.InvokeMember("Quit", 
System.Reflection.BindingFlags.InvokeMethod,
null, word, 
null);
}

#region 
Web 窗体设计器生成的代码
override protected void OnInit(EventArgs 
e)
{
//
// CODEGEN: 
该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// 
<summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()

this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}

电商网站设计:分析主动用户和被动用户

作为消费者,你是否有这样的经历:你在当当网买了三年的书,但从来没有关注过图书频道首页,没有留意过图书专题Banner,也几乎没有用过图书导航目录。

你只用一个功能:搜索。上淘宝,你可能也是这样:搜索,然后过滤、排序,直至购买。

作为产品经理,你在规划网站导航、搜索、频道首页、专题这四大站内入口时,你是否想过,它们面对的是不同用户群;这不同的用户群中,有人只关注产品价格,而有人特别关注产品介绍和评论?

设计电商网站的出发点,就是了解和细分你的用户,比如新用户和老用户。对用户细分另一个重要维度:就是主动用户和被动用户:

主动用户:有购买欲望以及明确购买目标,决策较独立,不易受干扰;

被动用户:有购买欲望但无明确购买目标,需要被引导和刺激;

对于主动用户,拿传统书店打比方吧,来后直奔目标书架或是问导购员xxx书放到什么地方,买上就走。

互联网的场景就是这样的:你是李开复的粉丝,一天他推荐一本书《我的成功不能复制》,想必你会直奔当当,然后search,然后加入购物车。

还是那家书店,如果你碰上它的周年庆,想必会进去逛逛,因为肯定有折扣,这种闲逛行为,就是被动用户。

我下面均以购书网站打比方,因为它典型、好理解。

从入站流量说起

如果一个用户通过某书名进入到你的网站,当然了,着陆页(Landing Page)在图书详细页。这类用户,你的网站首页和产品导航,纯粹成了摆设,因为他是主动用户:目标明确。

如果一个用户通过品牌广告进入到网站首页,那么你应该推荐一些可能和他相关的书。比如他从某医学网站过来的,首页第一二屏可以考虑是医学或养生类;如果是旅游网站过来的,应该是。因为他是被动用户:目标不明确,你需要引导他。

当然了,这对网站的设计要求太高,目前除了亚马逊,当当也没有走到这一步:个性化。

你去京东上看了一款电源插座,然后你再去亚马逊首页,神奇的推荐发生了。技术实现可能是基于http referer头,即前一个页面里的商品类别。

有一种例外,如果用户搜索网站名称,然后再进入该网站,你真的不知道他是主动还是被动,因为很多用户就是不愿意记域名,比如amazon(这就是为什么知名网站在搜索引擎热榜上都是热门词)。他进入网站后,可能直奔search框,或在首页开始发呆。

关于首页

当你知道原来有主动用户和被动用户之分后,可能一种挫败感油然而生:我设计这么华丽的首页,还每天不辞辛苦地更新,竟然少有问津?你可以做一种折中嘛:第一屏人工推荐,其它几屏简单的机器推荐。

还有一种说法:我首页推荐都是热销品,占我每天销售额的20%,所以首页很多人都在关注。我不禁要问,你真的确定他们不是从搜索进入,然后产生购买?

如果你的网站70%都是老用户,会隔三差五回来逛逛,对于这类被动用户,首页推荐商品的相关性和质量,就特别关键了,特别是Banner栏和限时抢购等。像排行榜类栏目,完全是针对被动型用户的。

互联网购物用户,听说70%都没有明确的购买目标。

关于导航和搜索

导航和搜索,是任何电商网站的站内最核心入口。由于品类的差别,侧重点有所不同,对规格和功能要求高的商品,以导航为主,比如鞋类、家电、手机类。

像图书这类海量无规格商品,一般还是搜索为主、导航为辅(以导航和搜索流量分布可以看出)。

对于图书这类网站,如果用户通过目录导航进入到列表页,这类用户一定是被动型用户:没有明确的购买目标。他买什么,主要决定于商品列表第一、二页的排序,即推荐顺序。所谓推荐,就是商品的相关性,在不熟悉用户偏好情况下,一般是近期销量、好评度、上架时间、点击量、收藏量等综合起来的一个权重值。

当然了,这也有一个问题,就是推荐的总是热门书、新书,那些经典老书就被冷落了。出一个经典老书频道?或是在图书详细页里有一模块:相关经典老书?或是,干脆等着了解它的买主,search到它。

对于设计师,设计导航列表页时,可以给用户推荐一些专题或促销活动;而搜索列表页,最好干干净净,避免噪音,让用户更快地决策、下单(列表页都是过渡页)。

关于商品详细页

无论是通过导航还是搜索,最终进入商品详细页。当用户对该商品产生购买欲望后,他最有可能的意图,就是寻找替代品(如同价位手机)或是附加品(如相关图书、iPad附带的皮套),也就是商品的“相关推荐”商品。

寻找替代品:有购买欲望,但还没有明确购买目标,他是以被动用户身份进到详细页的。商品的的详细介绍资料、商品评论对他很敏感,因为他处于商品了解阶段。

寻找附加品:有购买欲望,同时已经明确了购买目标,他是以主动用户身份进到详细页的。商品的详细介绍资料他不是太关注,而价格对他比较敏感,因为他处于购买决策阶段。

对于从促销进到详细页的用户,大多数都是有购买欲望但无购买目标,他除了关注价格本身,对商品详细信息也要求较高,因为从用户购买决策过程来看,一定是对商品本身有足够的了解后,才会考虑下单。

对于从搜索进到详细页的用户,就要细分了。从商品全名进入的(如“二号首长2”),和从商品属性进入的(如“官场小说”),一个主动型,一个是被动型(你来推荐一本给我吧,不过要“官场小说”哦)。

所以我一直在强调推荐系统是电商网站的核心基础设施。其中,从人的属性角度是个性化推荐,从商品的属性角度是相关推荐。

推荐系统,主要是针对被动型消费者。最近流行的社会化电子商务网站,如蘑菇街、美丽说,都是针对被动型消费者。这类网站本质是提供导购服务,也就是淘宝客模式。像一淘这类比价网站,主要是针对主动型消费者。

你在亚马逊搜索“二号首长2”,神奇的相关性推荐出现了,如“省委班子”,但当当呢,差距啊。

关于促销和专题

促销活动,主要是增强消费者的购买欲望,但对有明确购买目标的用户,吸引力并不大。它主要是针对被动型用户,所以,将这类被动型用户的购买欲望,转变成明确的购买目标,就要靠推荐系统了。专题就是一种推荐方式,比如春天了,“送给给老爸的养生书”。

对于直奔搜索的主动型用户,促销往往束手无策。如果你有一个淘宝店,90%流量都来自站外搜索,如果你站内促销,估计效果不会太乐观(淘宝双十一时我们验证过)。

既然大部分主动型用户对网站首页Banner栏(促销入口)视而不见,那么在商品详细页,可以考虑植入文字栏促销,因为它会强化处于“商品了解、比较”阶段消费者的购买决心。对直接从商品详细页落地的用户,也会有帮助。

电商网站的销售额结构,可能40%来自站内搜索,40%来自目录导航,10%的首页、频道首页及专题,10%的相关推荐。

首页和相关推荐,占全站流量和销量比越高,说明用户越被动、越忠诚(你推荐什么他就买什么)。

如果站内流量入口主要是搜索,你就真得思考你的用户构成了,估计多半都是新用户。

听说amazon推荐系统产生的销售额占30%以上。

一句话总结:

在产品设计时,对于主动型用户,要提升购买效率;对于被动型用户,要强化相关推荐。

摘自:http://www.webjx.com/webmanage/experience-31785.html

IIS启用Gzip的方法与优缺点分析

    现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。

     现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率。对于纯文本来讲,压缩率是相当可观的。如果每个用户节约50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了。

  IIS6已经内建了Gzip压缩的支持,可惜,没有设置更好的管理界面。所以要打开这个选项,还要费些功夫。

  首先,如果你需要压缩静态文件(HTML),需要在硬盘上建一个目录,并给它“IUSR_机器名”这个用户的写权限。如果压缩动态文件(PHP,asp,aspx)就不需要了,因为它的页面是每次都动态生成的,压缩完就放弃。然后在IIS管理器中,“网站”上面右键-属性,不是下面的某个站点,而是整个网站。进入“服务”标签,选上启用动态内容压缩,静态内容压缩。

  然后选中网站下面那个服务器扩展,新建一个服务器扩展。名字无所谓,下面的添加文件的路径是:

  c:\windows\system32\inetsrv\gzip.dll,然后启用这个扩展。

  这时候静态内容是可以压缩的,但是对于动态内容,aspx文件却不在压缩范围内。因为默认的可压缩文件并没有这个扩展名。而管理界面中你又找不到可以增加扩展名的地方,这时候只能去修改它的配置文件了。

  在 c:\windows\system32\inetsrv\下面有个MetaBase.xml文件,可以用记事本打开,找到IIsCompressionScheme,有三个相同名字的段,分别是deflate,gzip,Parameters,第三段不用管它,前两段有基本相同的参数,在这两段的参数HcScriptFileExtensions下面都加上一行aspx,如果你有其它的动态程序要压缩,也加在这里。HcDynamicCompressionLevel改成9,(0-10,9是性价比最高的一个)。 

让Discuz速度再次提升 ——“开启IIS Gzip压缩” 

     以下方法将提升Discuz6.1压缩率0.33%,虽然很小,但对于一些访问量万以上的站点,将可能是一个速度上的飞跃(未尝试,所以是可能)。这里之所以说Disczu6.1压缩率提升0.33%,因为以下测试是在Discuz6.1下进行的,其他的建站程序一样适用(但是,提升的百分比,就不得而知了,欢迎大家测试)

    注:通过提高压缩率,从而提升了用户浏览网站的速度。 

【如何配置II6中Gzip压缩?】

    注:以下教程,部分不给予太多说明,只要按照以下配置,一般不会出现问题(由于自身在配置时,很顺利,如果有遇到问题,首先请详细核对步骤3次,如果都正确,依然问题存在的话,请回复告知)

    如果你要进行测试或安装,请一个一个字认真阅读! 

步骤一:

    打开II6界面 > 选择“网站” > 右键属性 > 选择“服务”> 按照图中打钩

    其中“临时目录的最大容量”与“临时目录”依据自身自行更改设置

    特别注意,要给予临时目录 User权限(写入、修改、读取) 

步骤二:

    选择“Web服务扩展” > 在右侧空白处右“键新Web服务扩展” > 按照图输入相关

    “设置扩展状态为可选”打钩

    “添加文件”很可能由于每个人服务器配置不同,请自行搜索下(或者按照图中打入,看看是否存在) 

步骤三:

    开始 > 运行中输入 c:\windows\system32\inetsrv (如果错误,请按照图中输入)> 找到 MeteBase.xml

    复制一份到桌面(并更改为 bak_MeteBase.xml),作为备份。 

步骤四:

    用文本等工具打开 MeteBase.xml > 搜索 Location ="/LM/W3SVC/Filters/Compression/gzip" 

    然后,你将看到如下代码(仔细核对下段落)

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="0"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="FALSE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="0"
HcFileExtensions="htm
html
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe"
>
</IIsCompressionScheme>

替换成:

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="10"
HcFileExtensions="html
css
js
htm
xml
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="php
dll"
>
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="2"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="10"
HcFileExtensions="html
css
js
htm
xml
txt"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="php
dll"
>
</IIsCompressionScheme>

    红色部分为你要压缩的文件类型,请自行增加。上方为静态类文件,下方为动态类文件。
    蓝色部分为压缩等级,数值为 0-10 ,请自行根据服务器硬件等环境来做调试(可以先用文章开头时提到的网址,先测试并记录“未开启任何Gzip的数值”与“开启Discuz6.1后台Gzip数值”,然后配置完成,再记录“开启IIS6下的Gzip时的数值”,3个就可以进行对比了)
    然后请先保存到桌面,名为 MeteBase.xml 

步骤五:

    我的电脑 > 控制面板 > 管理工具 > 服务

    找到 IIS Admin Service > 停止 

步骤六:

    回到找到 MeteBase.xml 的目录,删除它 

步骤七:

    在步骤四的最后,让大家保存到了桌面,现在我们剪切它。 

步骤八:

    回到刚才删除 MeteBase.xml 的地方,把从桌面剪切的粘贴进来 

步骤九:

    在步骤五中,我们停止了 IIS Admin Service 服务,现在,我们点启动它。(图与步骤五一样,所以请以实际的为准) 

步骤十:

    回到II6中,对其进行重启IIS

步骤十一:

    进入Discuz6.1后台,关闭 Gzip 压缩(重要)

    如果不关闭,压缩效果将会降低 0.33% (不关闭,则就是2个Gzip压缩了,而输出时,将优先使用Discuz6.1后台的,所以会下降,一定要关闭) 

步骤十二:

    到此,就配置完毕了!以上教程可能对于部分人来啰嗦,但出于配置考虑,比较详细。另外Disucz6.1后台的Gzip压缩相当于压缩等级 9,这里我们调整成了10 。就我个人感觉,Discuz6.1后台开启的Gzip压缩会有比较明显的点击停顿,不过很可能能是人感觉,有兴趣的朋友可以反复测试一下!写了3小时的教程,一些地方如果不足或错误,请指出,请勿用不文明的语言:) 

    谨慎开启GZip加速 可能影响百度蜘蛛抓取 

    GZip是“GNU Zip”的缩写,是由Jean-loupGailly开发的压缩方式。“GZip加速”就是在页面由服务器传送向客户端之前先用GZip压缩,然后到客户端再进行解压操作,由于传输数据量大大减小,下载速度当然有所提高。不过目前宽带已经普及,这种技术并不会带来明显的速度提升。

  由于该项功能需要在客户端进行解压缩,所以就需要搜索引擎蜘蛛可以正确的解压缩才能分析网页中的内容,如果解压缩失败,那就会导致搜索引擎蜘蛛抓取失败,对此GZip的问题我进行了一次试验。

  这次我的试验用了6个网站,网站都是保持每日更新,虽然不是原创,但是都是人工选择性复制,并且进行标题修改。其中有3个是我自己的,都放在了门户通的服务器上(开启了GZip),一个是客户的,放在他自己的服务器中(开启了GZip),还有两个也是客户的,放在购买的虚拟主机中(没开启GZip),经过两个多月的收录分析,开始收录都正常,每周都保持增长,但在上周三大更新,开启了GZip的4个站点,百度收录都降低了60%左右,没开启GZip的两个站点收录大幅增长,这个周三大更新,开启了GZip的4个站点,其中一个收录只剩下了主页,其余三个收录减少大约30页左右,没有开启GZip的两个站点收录依旧大幅增长;这6个站点谷歌收录都非常正常,没有出现任何大波动,都平稳的提高收录。

  基于此次试验,初步的验证结果是谷歌可以完美的支持GZip压缩,百度支持的并不太好,我估计可能是因为有的服务器压缩率过大可能导致蜘蛛的识别失败,所以导致了服务器日志中大量的出现200 0 64记录,以前我们对于200 064问题讨论过很久,都没有一个最终的结论,现在看来因为Gzip引起的可能性很大。

  目前我已经将放在门户通的网站转移到了没有开启GZip的服务器中,我会持续保持观察,看看转以后的收录情况是否会有好转。

  监测下服务器是否开启了GZip的方法是随便选择该服务器中的一个网站用“GZip检测工具”检查下即可知道结果。如果你的站也出现了收录大幅下滑的症状,建议你去检测下,看看是不是也开启了GZip压缩功能。

一个页面重构工程师眼中的“用户体验”

  如今,工业化设计已经融入到了人们的生活中,用户体验一词就常常出现在人们的视线里,随着互联网 web 2.0 时代的到来,大大小小的网站设计中也都开始关注用户体验。

  用户体验从产品设计阶段便开始介入,如原型设计中交互模式设计、功能实现方式设计都融入了设计人员对用户的关怀,听过这样一句话:“具有良好用户体验的产品,不仅仅取决于一个有着丰富交互设计经验的产品设计师,还与产品生产过程中的每一个环节是否都具备良好的用户体验意识有一定的关系”。

  本文从一个页面重构工程师的角度出发,从两个方面谈谈作者所理解的用户体验,以及作者做了哪些和用户体验有关的事情。

  一、 从可用到易用的细节处理

  1. 按钮、链接、导航菜单的鼠标触发状态、鼠标手型等

  随着视觉设计的发展,按钮、链接或者导航菜单的表现方式变得异常丰富,比如:

1.jpg 

  这些图片丰富了鼠标点击形式的视觉表现力。在基于功能可用的前提下,逐渐通过视觉渲染达到美化的效果,有了精美的设计图后,就需要页面重构工程师们加以切割,在代码化的过程中,通常要做如下考量:

  •  
    • 可点击区域大小,例如(下图)尽管风格上似乎按钮只有 10*10,但是在实现时,要考虑用户操作起来是不是很容易获取锚点,而不是点来点去找不到。

  • 鼠标操作类型的提示,鼠标输入提示、手型提示、文本区域提示、不可点击提示,尽管整个页面的视觉引导更重要,但用户在操作时,人眼一直跟随着鼠标或键盘的操作而转换,如果能伴随着正确的鼠标操作提示,更可增强引导作用,从而提升交互体验。
  • 按钮风格的一致性,按钮当前状态和点击状态的统一,按钮按照功能所作的统一。

设计师天马行空的想象力,赋予了他们创造性,而我们既要保留他们的创造力还要抽象出一些共用特征,在我看来按钮类型有 3 种,如果能有效区分,对网站的整体风格的建立和强化交互感受方面都会有一定的一致性,同时在页面构建过程中会抽离成公用信息,非常便于管理和维护。

  • 如确认、取消等,可称之为贯穿型。
  • 如登录、加关注等,可称之为点睛型,这一型在实际工作中通常从视觉上都略强于贯穿型,所以会建议设计师做一定统一,有时候是风格上,有时候是结构上,再甚者就是大小比例上。
  • 如发博文、发微博等按钮,可称之为增强型,通常这个类型不会限制设计师按照标准类型去做,即便出来的是个异型,我们还是应该理解的。
  • 最后就是无论哪种类型,都要注意是否有鼠标点击的 hover 状态,即便设计师没有设计,也要做出 hover 的交互效果,至少是预留,就我而言通常都是在原按钮颜色基础上调整一下颜色深度作为 hover 状态,大部分按钮我都会考虑做出交互效果,当然也有例外,比如活动专题中的点击区域,通常不会增加点击后的过分明显效果,如果非要做出一点效果,最多是调整一下文字本身的明暗度。

2. 图片的 alt 解释信息

  通常拿到设计需求,我会要求设计师帮助梳理 icon,一般会分两类——功能型和注释型。同时要求两种类型图片的像素区间要各自保持一致性,这样一来设计师在整理的过程中就会意识到,有的文字没有必要加注释图片,有的是功能和注释类型的大小、风格可能不一致,梳理过程中设计师会去调整一下,同时也在创意的过程中渗透一些规则。

  第一、二行是注释型,第三行是功能型

  3. 因设计或排版而没有完全显示出来的文字信息的 title 提示

  产品或用户经常抱怨“后面的文字看不到,这到底是什么内容?”之所以出现这样的情况,主要是没有考虑到文字信息出现的位置和当时这些文字的重要性,如果是图片瀑布流,那文字信息的作用只是索引而已,如果是文章列表页或视频列表页、甚至正文页这样的终极页面,标题名称是务必要全部展示的。所以为了避免折磨用户,一定要给显示不完全的信息增加 title,在存在缺陷的情况下也能有让用户有些许安慰,否则你就太伤用户的心了。

  4. 网站 logo 的权重设置 H1、网站主要标题、标识的权重设置 H2-H6、stong、em、b等(对搜索引擎的友好可读性)

  考虑各个层面的用户体验,是为了让用户尽量全方位的感受到网页的无边界浏览,在视觉和交互充分发挥作用的背后,代码标签的选择,也从一定层面决定了用户是否能够更好的使用,目前的一些搜索引擎,如 Google、Baidu 等,在过滤网页信息的过程中,有一套机制去寻找你网页中的主要内容,那些对搜索引擎比较友好的标签会更有利于页面信息的抓取,在用户搜索的过程中,抛开企业间战略合作不谈,也会相对显示在比较靠前的位置。

  5. 网站字色的一致性,链接色、提示色、内容字色等 (降低学习成本,培养用户习惯)

  设计一套互动类产品(博客、视频、邮箱)或者用户功能型产品(消费类产品、资讯类产品等)同样面临着一个问题——用户习惯,人其实对规律会更容易产生安全感也更容易增加舒适性。所以在网页的设计过程中,统一视觉感受不仅让用户安心、舒适地去浏览图片、文字、音乐、多媒体等信息,也能培养用户认知。

  当设计师天马行空的时候我是不会、也不敢去干扰他们,但如果谁告诉我风格确定时,我就会站出来要求设计师给出一整套设计规范,例如:

  • 链接色分主链接色和辅助链接色,建议不要超过 2 种,增加类功能区域除外
  • 文字色也是主辅都要有,同样不要超过两种(其实有多少种都可以,但你要考虑用户花多长时间适应你的五花八门)
  • 提示信息又分普通提示、正确提示、错误提示、空状态提示等
  • 什么图标类型分为功能型图标和注释型图标

6. 各种内容读取花较长时间的模块,在内容尚未加载成功时,先显示图片图片列表页或视频截图列表页面,在图片尚未加载时显示初始图片,并固定位置,防止满屏跑图

  7. 提示性文字位置在不干扰用户操作的前提下,交互一致性很重要,如固定在某一提示位置或不影响操作的颜色提示等

  在处理表单过程中,会考虑提示信息所在位置,包括默认提示、出错提示、正确提示等,如果提示风格不统一,会中断用户行为,页面表单填写过程中的流畅度非常重要,为什么会提起这一点,因为在实际工作中,如果没有交互设计经验,不论产品还是设计人员都经常会遗漏表单相关的各种提示信息,但这会影响页面构建过程中 HTML 的结构,因此如果前期发现产品文档,或者设计稿都没有表现出相关内容,不妨提醒他们务必考虑并添加好,减少后期调整页面结构的冗余工作量。

  很多人会说这些不是页面范畴,那页面是什么范畴呢,这些知识有产品范畴的、有设计范畴的、有用户研究范畴的、有交互范畴的,在我看来会这些最大的好处是减少你的工作量,我认为这些都是很基础的知识,不是必须掌握的,但最好了解,了解的好处非常显而易见,就是面对不一定靠谱的需求时,可以有的放矢的给出一些意见,从而减少一些返工,或者细碎的体验的增加。

  二、从慢慢等待到愉悦点击的变化

  1. 页面模块的按需加载

  由于互联网产品发展愈来愈趋向于规模化和正规化,在早年间采用全站只加载一个公用样式的时代已经过去了,取而代之的是对性能更优的模块化按需加载模式,如上图所示,模块化显而易见的好处就是代码冗余相对较低,代码量也较小。除此之外模块化的好处还包括:

  • 结构清晰,易上手;
  • 频繁变更产品需求时的快速维护和开发;
  • 快速下线局部模块;
  • 动态调整页面模块加载优先级时,无需剥离任何代码;
  • 便于多人协同开发;
  • 降低多人协同开发时,互相覆盖代码;
  • 适合开发大型产品等很多优点。

不论对用户,还是对维护开发都是非常有利的。

  2. 页面公用元素复用

  所谓公用元素,主要指:

  • reset 类型
  • 各类文字色
  • 各类链接色
  • 浮层框架
  • 页面主框架
  • 适用于本站的高复用补丁类型

3. 文件调用的层级酌情减小、文件名酌情缩短

  如:image/index/module1/limoumou/icon/fabiaopinglun.jpg 酌情优化目录层级

  如:fabiaopinglun_default.jpg 、.CommentListContent_linedot{} 酌情优化文件名长度

  4. 请求数量和背景大小均衡处理

  图片请求数方面,有时候你要考虑 CSS Sprite 拼合图片减少背景数,同时还要注意拼合图片K数不要太大,以及拼合图片注意纵横比,建议拼竖图(做过实验,同样内容,横图体积大于竖图)。

  当背景图片需要平铺时,请酌情考虑背景图片大小,比如 1px 高的虚线,请不要切一个1*2的小图,比如1*10,1*50,主要考量在于1*2的小图的平铺次数。

  影响页面性能的因素还有很多,例如 hack 的使用、position 的使用、table 的使用等等。关键是保持技术的新鲜,丰富自己的知识。

  作者注:以上文章只是沉淀了一下过往我在页面重构工作中所领悟的用户体验。略显肤浅,可能大家会质疑,为什么写页面的还要自己加图标状态或者修改局部效果,要知道在早期的互联网在分工上没有现在这样精专的分工,顶多分个前台、后台、产品。当然在当初这些事情不一定有如今的专业深度,但涉猎面的确较如今是更宽阔的。所以早几年开始从事网页制作的朋友,都不会对设计制作界定的那么明显,在图形图片处理方面也是有一定认知和操作能力的。不是为了显摆什么,只是觉得知识的深度和广度同样重要。

摘自:http://news.cnblogs.com/n/131980/

SQL Server 2005安装失败,提示服务无法启动

在Windows 2003系列服务器上(X86/X64)安装sql server 2005 过程中提示“无法启动sql server的 启动” 上网查了一下虽然有人尝试解决过这类问题 但是尝试了几种方案之后没有成功。

后来看到有人发的文章 解决方法是如下:
原因:在安装SQL 2005标准版(不多于四个CPU)和企业版(无限制)时,CPU的总核数必须是2的n次方。即核心数为1,2,4,8,16,32依次类推。因BL680C核心数为6x4=24,所以不能正常安装。当将核心数更改为8,16时,顺利完成安装。

解决办法:安装前保证系统正常的或不影响SQL2005安装。更改系统应用的核心数。‘运行’—输入“msconfig“,打开‘系统配置实用程序’,选择’BOOT.INI’---‘高级选项’,勾选‘/NUMPROC’数值选择为最大的2的n次方。重新启动后,可正常安装SQL server 2005。安装完成后,打全SQL 2005 SP3的补丁。然后将‘/NUMPROC’去掉勾选。重新启动系统后,即可正常使用所有物理核心运行SQL server 2005了。

VS 2010快捷键大全

Ctrl+E,D ----格式化全部代码
Ctrl+E,F ----格式化选中的代码
CTRL + SHIFT + B生成解决方案
CTRL + F7 生成编译
CTRL + O 打开文件
CTRL + SHIFT + O打开项目
CTRL + SHIFT + C显示类视图窗口
F4 显示属性窗口
SHIFT + F4显示项目属性窗口
CTRL + SHIFT + E显示资源视图
F12 转到定义
CTRL + F12转到声明
CTRL + ALT + J对象浏览
CTRL + ALT + F1帮助目录
CTRL + F1 动态帮助
F1 帮助
SHIFT + F1当前窗口帮助
CTRL + ALT + F3帮助-搜索
SHIFT + ALT + ENTER全屏显示
CTRL + -向后定位
CTRL + SHIFT + -向前定位
CTRL + F4关闭文档窗口
CTRL + PAGE DOWN光标定位到窗口上方
CTRL + PAGE UP光标定位到窗口下方
CTRL + F6
CTRL + TAB下一个文档窗口
CTRL + SHIFT + F6
CTRL + SHIFT + TAB上一个文档窗口
ALT + F6下一个面板窗口
CTRL + K, CTRL + L取消remark
CTRL + K, CTRL + C注释选择的代码
CTRL + K, CTRL + U取消对选择代码的注释
CTRL + M, CTRL + O折叠代码定义
CTRL + M, CTRL + L展开代码定义
CTRL + DELETE删除至词尾
CTRL + BACKSPACE删除至词头
SHIFT + TAB取消制表符
CTRL + U转小写
CTRL + SHIFT + U转大写
CTRL + SHIFT + END选择至文档末尾
CTRL + SHIFT + HOME选择至文档末尾开始
SHIFT + END选择至行尾
SHIFT + HOME选择至行开始处
SHIFT + ALT + END垂直选择到最后尾
SHIFT + ALT + HOME垂直选择到最前面
CTRL + SHIFT + PAGE UP选择至本页前面
CTRL + SHIFT + PAGE DOWN选择至本页后面
CTRL + END文档定位到最后
CTRL + HOME文档定位到最前
CTRL + A全选
CTRL + W选择当前单词

 

CTRL + G转到…
CTRL + K, CTRL + P上一个标签
CTRL + K, CTRL + N下一个标签
ALT + F10调试-ApplyCodeChanges
CTRL + ALT+ Break停止调试
CTRL + SHIFT + F9 取消所有断点
CTRL + F9允许中断
CTRL + SHIFT + F5调试-重新开始
F5运行调试
CTRL + F5运行不调试
F10跨过程序执行
F11单步逐句执行
CTRL + J列出成员
CTRL + PAGE DOWN下一个视图
CTRL + B格式-粗体
CTRL + SHIFT + T格式-文字缩进
调试快捷键
F6: 生成解决方案
Ctrl+F6: 生成当前项目
F7: 查看代码
Shift+F7: 查看窗体设计器
F5: 启动调试
Ctrl+F5: 开始执行(不调试)
Shift+F5: 停止调试
Ctrl+Shift+F5: 重启调试
F9: 切换断点
Ctrl+F9: 启用/停止断点
Ctrl+Shift+F9: 删除全部断点
F10: 逐过程
Ctrl+F10: 运行到光标处
F11: 逐语句
编辑快捷键
Shift+Alt+Enter: 切换全屏编辑
Ctrl+B,T / Ctrl+K,K: 切换书签开关
Ctrl+B,N / Ctrl+K,N: 移动到下一书签
Ctrl+B,P: 移动到上一书签
Ctrl+B,C: 清除全部标签
Ctrl+I: 渐进式搜索
Ctrl+Shift+I: 反向渐进式搜索
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一个
Shift+F3: 查找上一个
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
Ctrl+Shift+V: 剪贴板循环
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行
Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态
Ctrl+M,L: 将所有过程设置为相同的隐藏或展开状态
Ctrl+M,P: 停止大纲显示
Ctrl+E,S: 查看空白
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写
代码快捷键
Ctrl+J / Ctrl+K,L: 列出成员
Ctrl+Shift+空格键 / Ctrl+K,P: 参数信息
Ctrl+K,I: 快速信息
Ctrl+E,C / Ctrl+K,C: 注释选定内容
Ctrl+E,U / Ctrl+K,U: 取消选定注释内容
Ctrl+K,M: 生成方法存根
Ctrl+K,X: 插入代码段
Ctrl+K,S: 插入外侧代码
F12: 转到所调用过程或变量的定义
窗口快捷键
Ctrl+W,W: 浏览器窗口
Ctrl+W,S: 解决方案管理器
Ctrl+W,C: 类视图
Ctrl+W,E: 错误列表
Ctrl+W,O: 输出视图
Ctrl+W,P: 属性窗口
Ctrl+W,T: 任务列表
Ctrl+W,X: 工具箱
Ctrl+W,B: 书签窗口
Ctrl+W,U: 文档大纲
Ctrl+D,B: 断点窗口
Ctrl+D,I: 即时窗口
Ctrl+Tab: 活动窗体切换
Ctrl+Shift+N: 新建项目
Ctrl+Shift+O: 打开项目
Ctrl+Shift+S: 全部保存
Shift+Alt+C: 新建类
Ctrl+Shift+A: 新建项
VS2005的隐藏快捷键
这里我将会把一些无意中发现的VS2005中没有明确指出的快捷键共享出来,并不是所有的快捷键,或者常见的一些快捷键。
1、Ctrl+Space直接完成类或函数(本来这个并不算隐藏的快捷键,但是因为中文输入法抢占这个快捷键,所以。。。,替代的快捷键是Alt+Right)
2、Shift+Delete整行删除,并且将这一行放到剪贴板(这时候不能选中一段内容)
3、Shift+Insert粘贴,有点匪夷所思,Ctrl+V就可以了,大概是为了和Shift+Delete对应吧
4、Ctrl+Up,Ctrl+Down滚动编辑器,但尽量不移动光标,光标保证在可见范围内
5、Ctrl+BackSpace,Ctrl+Delete整词删除,有的时候很有用
6、Ctrl+Left,Ctrl+Right按整词移动光标(不算隐藏,和前面几条加起来就是Ctrl光标控制套件了)
7、Alt+Shift+F10打开执行改名,实现接口和抽象类的小窗口(还可以用Ctrl+.,不过有的中文输入法用到这个)
8、Shift+F9调试是打开QuickWatch,内容是当前光标所在处的内容
9、F12转跳到定义,很有用的快捷键
10、Shift+F12查找所有引用
---------------------------------------VS2008快捷键大全----------------------------
Ctrl+m+Crtr+o折叠所有大纲
Ctrl+M+Crtr+P: 停止大纲显示
Ctrl+K+Crtr+C: 注释选定内容
Ctrl+K+Crtr+U: 取消选定注释内容
Ctrl+J : 列出成员 智能感知
Shift+Alt+Enter: 切换全屏编辑
Ctrl+B,T / Ctrl+K,K: 切换书签开关
Ctrl+B,N / Ctrl+K,N: 移动到下一书签
Ctrl+B,P: 移动到上一书签
Ctrl+B,C: 清除全部标签
Ctrl+I: 渐进式搜索
Ctrl+Shift+I: 反向渐进式搜索
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一个
Shift+F3: 查找上一个
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
Ctrl+Shift+V: 剪贴板循环
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行
Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态
Ctrl+M,L: 将所有过程设置为相同的隐藏或展开状态
Ctrl+E,S: 查看空白
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写
代码快捷键
Ctrl+Shift+空格键 / Ctrl+K,P: 参数信息
Ctrl+K,I: 快速信息
Ctrl+E,U / Ctrl+K,U: 取消选定注释内容
Ctrl+K,M: 生成方法存根
Ctrl+K,X: 插入代码段
Ctrl+K,S: 插入外侧代码
F12: 转到所调用过程或变量的定义
窗口快捷键
Ctrl+W,W: 浏览器窗口
Ctrl+W,S: 解决方案管理器
Ctrl+W,C: 类视图
Ctrl+W,E: 错误列表
Ctrl+W,O: 输出视图
trl+W,P: 属性窗口
Ctrl+W,T: 任务列表
Ctrl+W,X: 工具箱
Ctrl+W,B: 书签窗口
Ctrl+W,U: 文档大纲
Ctrl+D,B: 断点窗口
Ctrl+D,I: 即时窗口
Ctrl+Tab: 活动窗体切换
Ctrl+Shift+N: 新建项目
Ctrl+Shift+O: 打开项目
Ctrl+Shift+S: 全部保存
Shift+Alt+C: 新建类
Ctrl+Shift+A: 新建项
Shift+Alt+Enter: 切换全屏编辑
Ctrl+B,T / Ctrl+K,K: 切换书签开关
Ctrl+B,N / Ctrl+K,N: 移动到下一书签
Ctrl+B,P: 移动到上一书签
Ctrl+B,C: 清除全部标签
Ctrl+I: 渐进式搜索
Ctrl+Shift+I: 反向渐进式搜索
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一个
Shift+F3: 查找上一个
Ctrl+H: 替换
Ctrl+Shift+H: 在文件中替换
Alt+F12: 查找符号(列出所有查找结果)
Ctrl+Shift+V: 剪贴板循环
Ctrl+左右箭头键: 一次可以移动一个单词
Ctrl+上下箭头键: 滚动代码屏幕,但不移动光标位置。
Ctrl+Shift+L: 删除当前行
Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态
Ctrl+M,L: 将所有过程设置为相同的隐藏或展开状态
Ctrl+M,P: 停止大纲显示
Ctrl+E,S: 查看空白
Ctrl+E,W: 自动换行
Ctrl+G: 转到指定行
Shift+Alt+箭头键: 选择矩形文本
Alt+鼠标左按钮: 选择矩形文本
Ctrl+Shift+U: 全部变为大写
Ctrl+U: 全部变为小写