友好连接

2008年4月1日星期二

如何提高网页的效率(3)

第七条:Avoid CSS Expressions 避免使用CSS中的Expressions首先有必要先说明一下CSS Expressions是什么一个东西。其实它就像其它语言中的if……else……语句。这样在CSS中就可以进行简单的逻辑判断了。举个简单的例子——

这样css就可以根结一些情况分别使用不同的样式了。如果你对这个感兴趣可以到我的博客上阅读相关的文章—— 《CSS中的expression系列文章》。但是CSS中Expressions 的代价却是极高的。当你的页面需要根据判断来渲染效果的元素很多的时候,那么你的浏览器将长期处于假死状态,从而给用户带来极差的用户体验。
第八条:Make JavaScript and CSS External 将javascript和css独立成外部文件
这一条好像和第一条有点矛盾。的确,如果从HTTP的request请求数来讲的话,这样做的确是降低了效率。但是之所以这么做,是因为另外一个重要的考虑因素——缓存。因为外部的引用文件会被浏览器缓存,所以如果javascript和css体积较大的时候,我们将它们独立成外部文件。这样当用户只要浏览一次以后,这些体积较大的js和css文件就能被缓存起来,从而极高地提高用户再次访问时的效率。
第九条:Reduce DNS Lookups 减少DNS查询
DNS域名解析系统。大家都知道我们之所以能记住那么多的网址,是因为我们记住的都是单词,而非http://202.153.125.45这样的东西,而帮我们把那些单词和202.153.125.45这样的ip地址联系起来的就是DNS。那这一条对我们到底有什么真正意义上的指导意义呢?其实有两条:1:如果不是必须,请不要把网站放到两台服务器上。2:网页中的图片、css文件、js文件、flash文件等等,不要太多的分散在不同的网络空间中。这就是为什么那种只发一个网站中的壁纸图片的帖子,要比壁纸图片来源于不同网站的帖子显示要快得多的原因。
第十条:Minify JavaScript and CSS 减少JavaScript和CSS文件的体积
这点很好理解。在你的最终发布版本中把没有必要的空行、空格和注释全部去掉。显然手工去处理效率太低,好在网上到处都是用于压缩这些东西的工具。压缩JavaScript代码体积的工具随处可见,我便不再列举了,这里我只提供一个用于压缩css代码体积的在线工具网站——http://www.cssdrive.com/index.php/main/csscompressor它提供了多种压缩方式,可以适应多种要求。
第十一条:Avoid Redirects 避免跳转我只从网页开发人员的角度来解读此条。那么我们可以解读到什么东西呢?2点——1:“此域名已过期,5秒钟以后,页面将跳转到http://www.xxxxxx.com/index.html页面”,这句话看起来的确很熟悉。但是,我就奇怪了,为什么不直接链接到那个页面呢?2:一些链接地址请更明确的写出来。例如:将http://justinyoung.cnblogs.com/ 写成http://justinyoung.cnblogs.com (注意最后面一个“/”符号)。的确,这两个网址都能访问到我的博客,但是,事实上,它们是有区别的。http://justinyoung.cnblogs.com 的结果是个301响应,它会被重新指向http://justinyoung.cnblogs.com/ 。但是显然,中间多浪费了一些时间。
第十二条 Remove Duplicate Scripts 移除重复的脚本
这个准则的道理很浅显,但是真正在工作中,很多人却因为“项目时间紧”、“太累了”、“初期没有规划好”……这样的理由搪塞过去了。你,的确可以找很多的理由不去处理这些多余重复的脚本代码,如果你的网站不需要更高的效率和后期维护的话。也正是这点,我提醒大家一些,一些javascript框架、javascript包一定要慎用。至少要问一下:用了这个js kit 到底给我们多少方便,提高了多少工作效率。然后,再与它因为多余的、重复的代码带来的负面效果比较一下。
第十三条:Configure ETags 配置你的实体标签
首先来讲讲什么是Etag吧。Etag(Entity tags )实体标签。这个tag和你在网上经常看到的标签云那种tag有点区别。这个Etag不是给用户用的,而是给浏览器缓存用的。Etag是服务器告诉浏览器缓存,缓存中的内容是否已经发生变化的一种机制。通过Etag,浏览器就可以知道现在的缓存中的内容是不是最新的,需不需要重新从服务器上重新下载。这和“Last-Modified”的概念有点类似。很遗憾作为网页开发人员对此无能为力。他依然是网站服务器人员的工作范畴。如果,你对此有兴趣,可以咨询贵公司的网站服务器管理员。第十四条:Make Ajax Cacheable 上面的准则也适用Ajax
现在的Ajax好像有点被神话了,好像网页只要Ajax了,那么就不存在效率问题了。其实这是一种误解。拙劣的使用Ajax不会让你的网页效率更高,反而会降低你的网页效率。Ajax的确是个好东西,但是请不要过分的神话它。使用Ajax的时候也要考虑上面的那些准则。

如何提高网页的效率(2)

第二条:Use a Content Delivery Network 使用CDN这个看上去好像很深奥的样子,但是只要结合中国的网络特色,这个便不难理解了。“北方服务器”、“南方服务器”、“电信服务器”、“网通服务器”……这些词听起来是那么熟悉和压抑。如果,一个北京的电信用户试图从广东的网通服务器上打开一个类似《壁纸合集》帖子的网页时,你就能很深刻的理解。鉴于这个不是我们开发人员力所能及的准则,所以这里也就不多言了。
第三条:Add an Expires Header 添加周期头
这个也并非开发人员来控制,而是网站服务器管理员的职责。所以,如果作为开发人员的你不了解和明白也没有关系。还是把这个准则告诉公司的网站服务器管理员。
第四条:Gzip Components 启用Gzip压缩
这个大家应该比较熟悉。Gzip的思想就是把文件先在服务器端进行压缩,然后再传输。这对于体积较大的纯文字型的文件有特效。鉴于这也并非开发人员,而是网站服务器管理员的工作范畴,这里就不详细讲解了。如果你对此感兴趣,可以资讯贵公司的网站服务器管理人员。
第五条:Put CSS at the Top 把CSS样式放在页面的上方。
无论是HTML还是XHTML还是CSS都是解释型的语言,而非编译型的。所以CSS到上方的话,那么浏览器解析结构的时候,就已经可以对页面进行渲染。这样就不会出现,页面结构光秃秃的先出来,然后CSS渲染,页面又突然华丽起来,这样太具有“戏剧性”的页面浏览体验了。
第六条:Move Scripts to the Bottom 将脚本放在底部原因同第五条一样。只是脚本一般是用来于用户交互的。所以如果页面还没有出来,用户连页面都不知道什么样子,那谈交互简直就是扯谈。所以,脚本和CSS正好相反,脚本应该放在页面的底部。

如何提高网页的效率(1)

网站最基本的东西是什么?——内容?SEO(搜索引擎优化)?UE(用户体验)?都不对!是速度!内容再丰富的网站,如果慢到无法访问也是毫无意义的; SEO做的再好的网站,如果搜索蜘蛛抓不到也是白搭; UE设计的再人性化的网站,如果用户连看都看不到也是空谈。
第一条:Make Fewer HTTP Requests 尽可能的减少HTTP的Request请求数。
80%的用户响应时间都是浪费在前端。而这些时间主要又是因为下载图片、样式表、JavaScript脚本、flash等文件造成的。减少这些资源文件的Request请求数将是提高网页显示效率的重点。这里好像有个矛盾,就是如果我减少了很多的图片,样式,脚本或者flash,那么网页岂不是光秃秃的,那多难看呢?其实这是一个误解。我们只是说尽量的减少,并没有说完全不能使用。减少这些文件的Request请求数,当然也有一些技巧和建议的:
1:用一个大图片代替多个小图片。
这的确有点颠覆传统的思维了。以前我们一直以为多个小图片的下载速度之和会小于一个大图片的下载速度。
·大文件和小文件下载所需时间的确是不同的,差异的绝对值不大。而且下载所需时间占总耗费时间比例很小。
·大约80%以上的时间是用来检索缓存和确定链接是否有效的Blocked时间。无论文件大小,这个时间的花费大致是相同的。而且所占总耗费时间的比例是极大的。
·一个100k的大图片总耗费时间绝对大于4个25k的小图片的总耗费时间。而且主要差别就是4个小图片的Blocked时间绝对大于1个大图片的Blocked时间。
所以如果可能还是使用大图片来替代过多的琐碎的小图片吧。这也是为什么翻转门的效率要高于图片替换实现的滑动门的原因。但是,请注意:也不能用太大的单张图片,因为那样会影响到用户体验。例如个几兆的背景图片的使用绝对不是一个好主意。
2:合并你的css文件。
根据“尽可能的减少HTTP的Request请求数”准则我们知道,那样的确是不合理的,因为那样会产生更多的HTTP的Request请求数。从而降低网页的效率。所以,从提高网页效率的角度上而言,我们还是应该将所有的css写在同一个css文件中。但是问题又来了。那么怎么来很好的组织和规划样式表呢?这的确是个矛盾。我现在的做法是采用两套版本。编辑版和发布版。编辑版仍然使用多个css文件以便于规划和组织。而等到发布的时候,再将多个css文件合并到一个文件中去,从而达到减少HTTPRequest请求数的目的。
3:合并你的javascript文件。原因和处理方法同上,不再赘言。

2008年3月5日星期三

痔疮者不应吃哪些食物

痔疮患者不应当吃或少吃辛辣刺激性食物,如白酒、黄酒、辣椒、胡椒、生姜、大茴香、蒜、葱及鱼、虾等肥甘厚味、炙烤食物,

这些食品可刺激直肠肛门部的粘膜皮肤、使充血明显、加重痔出血、脱出。

痔会变癌????不会的

星期六上午,医院门卫老李到专科门诊来找我,手里还拿着一份报纸,才坐下就急着要我给他检查,看他的痔疮有无癌变。我细问

病史,原来他患痔疮已经有10多年,有间歇便血及使后痔核脱出。前几天他闲着无事,拿来一份报纸,不经意瞥见一则广告称,某品牌

肛肠痔疮治疗仪能够检测痔疮是否癌变,其理论依据就是猿和人具有相似性,所以猿能进化到人;同样,痔疮和癌症在外形上也相似,

所以两者也能相互转化。该仪器的检查目的就是争取早发现,其准确率特高,并能予以相应的治疗等等。他很担心自己患痔疮多年,会

不会也出现恶变,所以今天就匆匆地来了。

  痔是一种常见病,俗称“痔疮”,民间有“十人九痔”之说。在临床门诊过程中,确实也有些病人会问痔疮到底会不会变癌?要回

答这个问题,首先得从痔疮的形成说起。

  人的消化系统就像一条很长的加工生产流水线,食物从口腔进入,经过一系列的消化器官,如胃、十二指肠、小肠、结肠、直肠

等,最后由肛门将消化了的食物残渣——粪便排出体外。位于直肠和肛门之间的这一段叫肛管。每个人肛管内都有一种组织衬垫,简称

“肛垫”,它含有扩张的静脉血管、平滑肌、胶原纤维和弹性纤维组织,是正常的组织,它配合肛门括约肌起到闭合肛门的作用,这就

像啤酒瓶,如果它没有瓶盖内的胶垫起密封作用,酒就会漏出来一样。

  但随着年龄的增长或在某些病理情况下,肛垫内的平滑肌和纤维组织逐渐老化,弹性变差或断裂,如经常伴有便秘,排便时需过度

用力,大而坚硬的粪便会使衬垫充血下移,或静脉曲张破裂出血,造成痔核脱垂、出血或坠胀不适。因此,痔疮主要是因肛门衬垫下移

而形成的,当然还与长期饮酒及食大量辛辣刺激性食物等因素有关。但从大量手术切除的痔核标本来看,通过组织化学、显微镜等手段

检查证实,痔组织与正常的肛门衬垫在结构上是相同的,而且终生不会改变,临床上亦罕有痔核发生癌变的报告。因此,从一般意义上来

讲,痔疮是不会癌变的。

  听了我的解释,老李如释重负,说道:“为这事我已几天没睡好,现在我总算可以高枕无忧了。”听了这话,我急忙提醒他说:

“你这种想法也是不妥当的,虽然痔疮的发生与癌症没有本质的联系,但它容易与癌症相混淆,特别是直肠癌,由于直肠癌早期临床症

状并不典型,其便血、黏液便、排便习惯改变等症状有时很容易与痔疮、慢性结肠炎等大肠、肛门良性疾病相混淆。据资料统计,有超

过半数的直肠癌病人可同时患有痔疮,故不可掉以轻心,不要仅仅满足于痔疮的诊断而忽视了直肠癌的存在。所以,防癌之心不可无。

  目前医学专家认为大多数的直肠癌是由于肠黏膜表面的腺瘤性息肉在致癌因子的刺激下逐步演变而来,另外也与直肠慢性炎症、膳

食与致癌物质等原因有关。因此,在日常生活中,痔疮患者要经常注意观察自己排出的粪便,如果出现大便稀烂、变细变形、排便次数

增多、大便带暗红色血或动液,或不明原因的腹痛、消瘦、贫血等表现时,应及早到医院找专科医生就诊。医生通过直肠指诊、结肠镜

检查或结肠气钡双重对比造影,多能明确诊断。”

  老李听完后点点头说:“看样子我是‘离了狼群,又入了虎穴了’。”我笑着说:“没你说的那么严重,只要日常生活多加注意就

差不多了,再说,你的痔疮也是可以治疗的。”“唉,不管怎样,至少我现在不相信那骗人的广告了。”说完他向我道谢,高兴地走

了。