今天上某B2C电子商务网站,突然在首页的中间发现一个“我的最近浏览历史”和“为我推荐”的东东,“为我推荐”是根据“我的最近浏览历史”来推荐的,
陡然感觉这网站越来越人性化了,不再按照自己的意思把想要买的东西强加给你,而是换了一种方式,让人感觉到确实是在为我服务;而且推荐的东西确实和自己的需求靠得很近,直接点击就进去了。真是太棒了,把想卖的东西在第一时间就给了目标客户,命中率很高。
公司(包括很多同类的公司)在上新产品的时候都会在显然的地方放上惹火的广告来吸引人,效果怎样先不说,觉得就是在给大家混个脸熟,搞得大家都有点反感了(至少我前公司搞的我是快恶心得不行了,搞得用户也是抗议连连,迫不得已又改回去了)。归根结底,我觉得是公司以老大自居的表现,觉得自己很有统治力、有指挥他人消费的意愿,让用户都按着自己标好的步骤去走。为什么不按照用户的习性去做,那样不更好么?
posted @ 2008-07-09 14:49 小胖子 阅读(84) | 评论 (2)编辑

在确认传入参数的情况下,检查该参数的值是否为null
或许是默认值.

posted @ 2008-07-04 17:14 小胖子 阅读(179) | 评论 (0)编辑
抱着一颗真诚的心情来发此贴。特邀请各位朋友一起参与到这场个人认为是一场公益性的“战场”之中。从个人的成长经历一直阐述到自己一定要做这件事情的想法。希望各位朋友能认真阅读,当然了,如果您感觉到我们有共同的爱好,希望您的参与。
    我81年,性别男,出生在山东的一个小农村,家庭情况很不好,高三还没毕业就辍学出去打工,当时是跟着大人到济南做建筑,一个月给400元,那个时候一个月能拿到400元已经感觉很不错了,在工作的过程中由于刚从学校出来,再加上经常想起自己曾经的理想,心情一直很烦恼。白天拉沙子水泥,似乎只是麻木的去做,没有自己的想法和思维。晚上躺在床上一个人静静的胡思乱想,没了前途,没了理想,更多的是忧伤。也曾经抱怨自己的父母,抱怨自己的出身。但是,还是要一天一天的去生活。时间在一天一天的煎熬着,总算坚持了一个多月。拿到自己亲手赚的400元,心理说不上来的滋味:高兴,为自己能赚钱了,能帮父母一把;迷茫,似乎自己要这样下去了,一辈子,看不到希望,没了其他的选择。在偶然的一次机会(某大学自考招生的宣传),我知道了自学考试,知道了一边赚钱还可以一边读书学习。在家人的同意下,我和高中的两位同学(其中一位同学现在在华为上班,混的也不错)准备一起去西安参加自学考试,只所以当时选择西安,听别人说西安的大学多,老师多,消费还低,是学习的好环境。
    就这样,于2000年8月份,我和另外两位高中同学跟着某学院的招生负责人来到了西安,来西安之前告诉父母是读大学的,说读一年马上就可以工作了,且工资还高。家人知道这些情况后还从亲戚那里借来几千元作为求学费用和生活费用。来到西安后,并不是当初自己想想的那么好。我们三个就稀里糊涂的按照招生负责人的要求把“所谓的入学手续”给办了,学的专业是计算机科学与技术,后来才知道,这些人是有提成的。第一年也就那样在所谓的大学里混过去了。第二年学校收学费,没钱给他们,家里父母问给安排工作了吗,也无法给家里交代。生活是痛苦的,日子是煎熬的。每天吃不饱的日子让学习不能继续进行。记得饿的最厉害一次,我和另外一个同学在西工大的一个卖大饼处偷人家的大饼和葱吃。
   02年遇到了生命中的第一个贵人,我的初恋女友。详细过程不讲述了。由于我女友是城里人,家庭情况也不错,在经济上她给与了我很多的帮助。也是在她的帮助下,我顺利的拿到了我的专科证。一心想找工作,由于没有工作经验,再加上自己的学历不够硬,所以很难。那么就参加培训,费用很高,在报名之前他们给了很多的保证,可交钱后才发现很多的承诺都会在他们的“合理解释”下变的不再是你美好的向往。欺骗,伤心,无奈,绝望,一度曾经想起了自杀,感觉生命到了尽头。我女友真的很善良,也真的很支持我。我感觉到对美好生活的向往,想尽快找到工作。03年的大年三十前夕,我独自一个人去了深圳,听别人说深圳好找工作。且工资还高。到了深圳,人生地不熟的,来的时候曾天真的认为过年的时候别人都回家了,竞争力小,谁知来到后,公司厂子也放假,别人都不上班,根本就没招聘的。接下来就是等……一等等到要过正月十五。在此期间,有的时候一天靠一袋方便面过日子,实在饿的受不了,就喝水,后来没钱了,就去捡破烂,也是在那段日子里,让自己变的更加成熟。对生活不再恐惧。
   在深圳,我遇到了我生命中的第二个贵人。具体找工作的困难我就不说了。我相信有过工作经历的人能体会到一个没有经验和没有学历的人的困难。经过自己的努力吧,总算在深圳市宝安区公明镇上的一家公司上班了。这家公司主要做闭路监控系统。我的工作是装机(根据客户的要求,把视频卡装到电脑主板上,然后测试)。刚才所说的第二个贵人就是我的经理,他是个河南人。无论在工作中还是在生活中,他都给了我很多帮助。由于自己一直想搞程序开发,那个时候工作应该来讲是不对口的。所以晚上就学习C\C++,学习数据结构,为了有天能从事自己喜欢的工作。只要你努力就会有收获,哪怕收获甚微。有了稳定的工作,日子过的是快的。工资一个月一千多,发了第一个月工资,手里拿到工资单,心理终于找到了归属感,心想从建筑工人到公司的一个职员,我的努力给了我回报。第一个月工资没有给父母,给我女朋友汇过去了。一是让女朋友放心,我有能力来照顾她了。二来我心里一直感觉对不起女朋友。自认识后,她对我付出了很多,而自己什么都没给与过她。
   工作半年后,我又回到了西安,因为我想继续学习,想把本科证拿到手。在西安没多久,我女朋友毕业了。她父母坚决反对她和我交往,后来她父母在烟台老家给她找了一份不错的工作。再后来,我们分手了。分手是痛苦的,更痛苦的是你曾经对自己爱的人的承诺还没实现就分手了。似乎生活又回到了起点。日子又回到了过去。迷茫、思念、痛苦……在朋友的帮助下,我去了一个朋友那里工作,朋友他们几个合伙开了个公司,主要是给别人做网站,由于是创业初期,所以是没工资的,但可以给股份,相当于入的干股,(以技术的方式)。每天思念着她,无心生活,痛苦的煎熬着……
   如果你无心去生活,你对生活不抱有希望,那么生活对你当然也不友好,它会在一天天的侵蚀着你的思想,直到你再没有生活的信心,彻底的对生活进行终结。我就是这样子,那个时候没了自信,没了生活下去的勇气,每天像行尸走肉……突然的一件事情触发了我的好胜心,使自己不再低迷下去。由于工作没有工资,只能靠自己以前的积蓄,那么积蓄很快就花光了。摸摸自己的口袋,只有五元钱,给同学借了50元。第二天早上去厕所,在冲马桶的时候不小心把马桶上面的盖子给搞下来了,直接就把马桶给砸了个N块,且盖子完好无缺。呵呵,刚才说了,你没精神去生活,生活就要好好治治你。房子是租的别人的,肯定要把马桶给修好了。到市场去买,问了遍都是新式的,不是房东的那种老式马桶。且价格不菲,动不动好几百,还有成千上万的。该你倒霉的时候,就是这样的,撒泡尿就会有麻烦。郁闷的心情到了极致,似乎马路上已没有自己可站立的足迹,没有你的空间,让你马上从地球上消失。在没有目的的问着别人有没有老式的马桶。也许刚才的那段时间老天故意作弄你,让你有失望的感觉。而现在再给你个惊喜,有个老板正好有个那样的马桶,由于在运输的过程中,盖子给搞坏掉了,所以就一直没卖出去,现在便宜卖给我。五十元整。呵呵,我摸着昨天刚给朋友借来的五十元。心想,天不留我在西安啊。树挪死,人挪活。现在是该我离开西安的时候了。
    住的地方离市场有段距离,买掉马桶后,身上仅剩昨天吃面剩下的一元钱。把马桶扛到公路上,看着车来车往。突然想哭但又想笑。天这么热,还是留着这一元钱吧,等渴的时候买瓶水喝。一个人扛着马桶在马路上走似乎也是一道美丽的风景,要不会赢来那么多的回头率。大概走了半个小时,实在累的不行,浑身让汗水给湿透了。心里盘算着离住的地方还需要的时间和距离……,时间在一秒一秒的走着,数着秒针,挺着胸膛,一手扶着肩上的马桶、一手抹着脸上的汗珠……,走着……坚持着……。坚持不住了,干脆坐公交吧,就上了公交,目光呆滞着看着车窗外的高楼大厦,突然感觉自己生活多年的西安是那么的陌生……,回过神来,才发现自己坐的车子是做错了,坐成区间车了,离住的地方越来越远,哎,奶奶的,这是怎么了。怎么这么背。哎,下车……
     下车后,突然感觉自己特有精神,一只手顺手就把马桶扛在了肩膀上,心想,我今天就把你扛到家里了,妈妈的这是怎么了,都想欺负我是吗?从现在一刻开始,我的精神就属于我,我相信我能战胜眼前的一切困难。任何困难都难不倒我。扛着马桶,哼着歌曲,走着……坚强的走着……充满信心的走着。呵呵,这次的回头率更高……
     到家后,把马桶装好,在收拾破碎的马桶时,把手搞了好几个口子,鲜血流着,也没去擦,让它流吧,心想,流吧,这是我最后一次在西安流血流泪。什么都收拾好了,洗干净手,突然感觉浑身发软,是啊,到下午两点多了,还没吃东西,身体能不软吗?摸摸口袋,身上就摸出一分钱硬币,看着这一分钱。哭了,像一个孩子那样哭了,一个男人为了一顿饭哭了像一个孩子那样哭了……
     一个人坐在地上,回忆着到西安的每一天,回忆着自己的真诚、回忆着每次培训前对生活的美好期盼;回忆着每次培训后的失落;回忆着和自己女友的美好生活;回忆着失恋后的痛苦;回忆着,回忆着……要走了……
     去见了同学,和他们说明了我的想法。我要离开西安。要去上海。同学对我进行送行,分别前大家一起吃了顿饭。我拿着借别人的300元去了西安火车站……就这样到了上海。
     在上海,我遇到了我生命中的第三个贵人。详细情况不谈了。目前在上海工作还不错,现在在一家软件公司做开发,是个项目经理。去年春节回家,和同学们一起聚会。和他们谈了很多很多,有的现在大学刚毕业。工作也没着落。有的在回炉参加培训。从和他们的交谈中,能读到他们的迷茫和困惑。有的同学参加培训花了一部分钱,结果发现并不是当初学校所说的那样。听着他们的叙述,自己似乎又回到了过去,作为我亲身经历过事情,我能想象到他们目前的痛苦。且相对当年的我来说,他们毕竟年龄也不小了。自那次聚会后,我经常思考目前的教育方式和目前的培训机构。其实作为没有经验的人来说他们花钱去培训花的是那么真诚,他们有的甚至借钱,甚至贷款去培训,可我们的培训结构都给了他们什么?都真正的让他们学到了什么?
    我的学业是吃百家饭长大的,自己对学习和知识有自己的看法,到目前为止,我自己也带过好几个通过正规的大学本科毕业的学生,甚至研究生。通过和他们的共同工作和交流学习。使自己对学习有更深刻的体会和认识。我一直在想,如果每个有工作经验的人在工作之余,能通过自己的实践经验去影响那些还没毕业的人,或者刚刚步入社会中的没有工作经验的人,那么他们的提高会是很快的。我们也一样,虽然我们在某方面有一定的工作经验,但我们可能在发展中遇到了瓶颈,这个时候如果在这方面有其他的实践人员能影响着我们,我相信对我们来讲也是有很大的帮助。这样,一方面别人需要帮助,需要指点,他们情愿花钱去找这样的人,而另一方面我们确实又有这样的能力去帮助他们。后来,我就做了个网站,名字叫淘师宝(http://www.taoshibao.com/),我想如果我们每个人都能参与进来,这样就会少很多被培训机构欺骗的人。同样,我们也会改变很多人的命运。也许有人认为我在发广告,但我要说的是我确实想做一些事情,希望这些事情能改变一些人的命运。因为当我看到这些被骗的学生时候,我会经常想起我困难的时候。如果阅读的朋友有公益性心,想做些有意义的事情,希望您能参与进来,我相信经过我们的努力,培训机构会更加规范。学习方式会更加合理。为别人也为自己。

http://www.taoshibao.com/Admin/ReadNewsMsg.aspx?ArticleID=9ed466ab-d01c-4835-9d09-9b87792061db
posted @ 2008-06-23 14:39 小胖子 阅读(114) | 评论 (7)编辑

今天要写一段读写文件的程序,使用this.Server.MapPath(str),str是一路径字符串,如:http://localhost/web/index.html
,不料却出现“不是有效的虚拟路径”的错误,马上检查程序,感觉没有什么错误,于是乎网上搜,
找啊找,就是找不到解决方案。只有自己慢慢调试了;
先使用了一个根路径"/",居然换了一个错误:“未能映射路径”,就搜这个错误,这个还有相应的回答:
把"/"换成"~/",成功了。心窃喜。。。
于是先把str.ToLower(),然后str.Replace("http://","");接着str.SubString(str.IndexOf("/"));
最后str = "~"+str;
this.Server.MapPath(str);
成功。。。
代码如下:

1 str = str.ToLower();
2 if(str.IndexOf("http://"> -1)
3                 {
4                     str = str.Replace("http://","");
5                     str = str.Substring(str.IndexOf("/"));
6                 }
7                 str = this.Server.MapPath("~"+str);

posted @ 2008-05-19 15:50 小胖子 阅读(715) | 评论 (0)编辑

一. HTTP压缩概述

HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或 CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。Gzip是比较常见的 一种HTTP压缩算法。

本文介绍的HTTP压缩方式,采用的是Windows系统设置的方式,优点是效率较高。


二. HTTP压缩工作原理

Web服务器处理HTTP压缩的工作原理如下:

Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。


三. IIS 6.0中配置HTTP Gzip压缩的步骤:

1) 打开Internet信息服务(IIS)管理器,右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和"压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制";

2) 在Internet信息服务(IIS)管理器,右击"Web服务扩展"->"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输 入扩展名"HTTP Compression",添加"要求的文件"为C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目 录根据您的安装可能有所不同,选中"设置扩展状态为允许";

3) 使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),找到Location ="/LM/W3SVC/Filters/Compression/gzip",如果需要压缩动态文件,则将 HcDoDynamicCompression设置为"TRUE",并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名, 如ASPx;如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为 "TRUE",并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等; HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数字越小压缩率越低;

4) 编辑完毕后保存MetaBase.xml文件;如果文件无法保存,则可能IIS正在使用该文件。打开"开始"->"管理工具"->"服务",停止"IIS Admin Service"后,即可保存;

5) 最后,重新启动IIS。可以到HTTP压缩测试网站验证结果


转载别人的,忘了页面了。

posted @ 2008-04-03 17:51 小胖子 阅读(134) | 评论 (0)编辑
刚做项目的时候写了个简单的函数,如下:
Code

一开始在obj.previousSibling.firstChild.innerHTML这个地方用的是obj.previousSibling.firstChild.innerText,可在FF下显示的是undefined,原来在FF下 li没innerText这个属性。

网上看到一些详细的介绍,给大家分享一下:
属性  描述 
attributes  如果该节点是一个Element,则以NamedNodeMap形式返回该元素的属性。 
childNodes  以Node的形式存放当前节点的子节点。如果没有子节点,则返回空数组。 
firstChild  以Node的形式返回当前节点的第一个子节点。如果没有子节点,则为null。 
lastChild  以Node的形式返回当前节点的最后一个子节点。如果没有子节点,则为null。 
nextSibling  以Node的形式返回当前节点的兄弟下一个节点。如果没有这样的节点,则返回null。 
nodeName  节点的名字,Element节点则代表Element的标记名称。 
nodeType  代表节点的类型。 
parentNode  以Node的形式返回当前节点的父节点。如果没有父节点,则为null。 
previousSibling  以Node的形式返回紧挨当前节点、位于它之前的兄弟节点。如果没有这样的节点,则返回null。 

 

  Node对象常用方法:

 

方法  描述 
appendChild()  通过把一个节点增加到当前节点的childNodes组,给文档树增加节点。 
cloneNode()  复制当前节点,或者复制当前节点以及它的所有子孙节点。 
hasChildNodes()  如果当前节点拥有子节点,则将返回true。 
insertBefore()  给文档树插入一个节点,位置在当前节点的指定子节点之前。如果该节点已经存在,则删除之再插入到它的位置。 
removeChild()  从文档树中删除并返回指定的子节点。 
replaceChild()  从文档树中删除并返回指定的子节点,用另一个节点替换它。 

  接下来,让我们使用上述的DOM应用编程接口,来试着操作HTML文档。

首先举一个最简单的例子, 用 DOM 动态生成一个 Loading 的 IMG 并加入页面中, 当页面完全载入后, 就移除这个 IMG 对象.

 

属性:

 

Attributes  存储节点的属性列表 (只读)
childNodes  存储节点的子节点列表 (只读)
dataType  返回此节点的数据类型
Definition  以DTD或Xml模式给出的节点的定义 (只读)
Doctype  指定文档类型节点 (只读)
documentElement  返回文档的根元素 (可读写)
firstChild  返回当前节点的第一个子节点 (只读)
Implementation  返回XmlDOMImplementation对象
lastChild  返回当前节点最后一个子节点 (只读)
nextSibling  返回当前节点的下一个兄弟节点(只读)
nodeName  返回节点的名字 (只读)
nodeType  返回节点的类型 (只读)
nodeTypedValue  存储节点值 (可读写)
nodeValue  返回节点的文本 (可读写)
ownerDocument  返回包含此节点的根文档 (只读)
parentNode  返回父节点 (只读)
Parsed  返回此节点及其子节点是否已经被解析 (只读)
Prefix  返回名称空间前缀 (只读)
preserveWhiteSpace  指定是否保留空白 (可读写)
previousSibling  返回此节点的前一个兄弟节点 (只读)
Text  返回此节点及其后代的文本内容 (可读写)
url 返回最近载入的Xml文档的URL (只读)
Xml 返回节点及其后代的Xml表示 (只读)

方法:

 

appendChild  为当前节点添加一个新的子节点,放在最后的子节点后
cloneNode  返回当前节点的拷贝
createAttribute  创建新的属性
createCDATASection  创建包括给定数据的CDATA段
createComment  创建一个注释节点
createDocumentFragment  创建DocumentFragment对象
createElement  创建一个元素节点
createEntityReference  创建EntityReference对象
createNode  创建给定类型,名字和命名空间的节点
createPorcessingInstruction  创建操作指令节点
createTextNode  创建包括给定数据的文本节点
getElementsByTagName  返回指定名字的元素集合
hasChildNodes  返回当前节点是否有子节点
insertBefore  在指定节点前插入子节点
Load  导入指定位置的Xml文档
loadXml  导入指定字符串的Xml文档
removeChild  从子结点列表中删除指定的子节点
replaceChild  从子节点列表中替换指定的子节点
Save  把Xml文件存到指定节点
selectNodes  对节点进行指定的匹配,并返回匹配节点列表
selectSingleNode  对节点进行指定的匹配,并返回第一个匹配节点
transformNode  使用指定的样式表对节点及其后代进行转换
transformNodeToObject  使用指定的样式表将节点及其后代转换为对象


http://www.webajax.cn/ajax/2007-8-4/AJAX-RuMenGeChao-XML-He-DOM.html
posted @ 2008-04-01 20:18 小胖子 阅读(159) | 评论 (0)编辑