关于本博客博皮的几点改进与释疑

关于本博客博皮的几点改进与释疑

Hi, 大家好~ hihi~

偶到cnBlogs也有几天了,承蒙大家错爱,对偶的博皮提出了不少的意见。本来该早些就对大家的问题作出回复,但是想想,还不如直接优化一下,以便以最好的状态将这个博皮共享出来,给大家使用。所以隔了几天才写这篇文章,并借此机会总结一下这个博皮的优化项目,不会优化的项目以及今后的改进方向。

那么就让偶来逐一解答这几天来大家集中提出的问题:

- 你的blog加载好慢

这个问题有人反映,而且在4/22这一天特别集中。仔细查了一下,发现那天 files.cnblogs.com 响应时间很长,一个几k大的javascript 文件也要花将近30秒才能载入。正是这些script 文件导致了网页的加载阻塞。于是针对这个问题,偶已经把所有的脚本文件都改成了inline调用。同时,考虑到可能有别人也在用博客园的文件上传系统传文件,并在自己的博客中引用,也会出现类似的加载阻塞现象,所以立刻向dudu站长反映,并得到了dudu站长的第一时间回复,并为 files.cnblogs.com 增加了带宽。现在问题应该解决了。在这里,我要感谢dudu站长和其他cnblogs的工作人员。有他们的辛苦劳动,才有这个优秀的程序员交流平台阿。

至于现在的访问速度,上海电信512k宽带访问blog首页的实测数据具体如下:
  • cache disabled, 初次访问的状态,10次测试,平均访问时间为10.6s。平均花费534ms完成加载首页所有的HTML,CSS和JS文件。其余为图片文件,包括CSS中引用的图片文件和文章中插入的图片。
  • cache enabled, 10次测试,平均访问时间为2.12s97%数据被cache。

所以这个访问时间,对于大多数的用户都是应该可以接受的。今后,随着首页文章数量的增加,可能加载时间会有所增加。以后发布文章的时候,我会尽量用摘要方式发布,以解决这个问题。

- 不支持IE6?

- IE6看起来一片混乱?

这里首先要明确下,什么是“支持”。

打这么个比方,用户访问某个网站的经历可以看作坐飞机。飞机相当于整个网站。飞机上有头等舱,也有经济舱。持有头等舱机票的乘客和经济舱机票的乘客都能乘坐这次航班,但显然,头等舱和经济舱的乘坐环境是不一样的。

头等舱代表这个网站对更新的浏览器,比如Internet Explorer 7, Firefox 2, Opera 9, Safari 3 等的支持;经济舱则是这个网站对IE6. FF 0.x, Opera 7, Safari 2, 乃至更早的浏览器的支持。浏览器性能以及特性的不同,直接决定了头等舱和经济舱提供什么样的服务——座椅最大有多宽,是不是能放一些最新的娱乐设备,是否能提供Wi-Fi 热点等等。然后航空公司——网站开发者——来决定是否启用这些服务,以及在多大程度上启用这些服务。如果经济舱根本不具备提供某种服务的硬件条件,那么开发者也是无能为力的。比如RGBA PNG——IE6这个经济舱本来就不支持这种已经很通用的图片文件,持IE6机票的乘客,自然只有两种选择:要么把你的经济舱票换成头等舱票,升级到IE7,或者干脆换成最新版本的FF、Opera或者Safari等浏览器,享受头等舱的待遇;要么继续使用IE6,并只享受基本的浏览网站的服务。选择权完全在乘客手里。这也是很多人为什么反对使用CSS hack的原因之一。如果经济舱不支持多媒体放映中心,机组人员完全可以从头等舱拉一条数据线过来,在经济舱里建立一个多媒体放映点,这个就是所谓的hack。但是如果某天,民航局规定不许在头等舱和经济舱之间相互拉线,机组人员还是得把这根线拉掉。开发人员也在面临同样的问题——不知道哪天,随着新的浏览器诞生,以前你用的hack都会失效,到时你不得不重新修正以前所有的问题hack,这样很得不偿失。

任何航班的经济舱乘客不能在头等舱就座,这是因为经济舱的乘客不愿意花费太多来享受更优质,但对他们可能并没有什么实际意义的服务。或许有乘客会抱怨,为什么不把经济舱也做的和头等舱一样豪华?这显然是不实际的——如果这样的话世界上的航班也早就没头等舱和经济舱的区别了。投入头等舱和经济舱的成本与收益之间,存在一个平衡关系。这个就相当于一个网站的开发成本。在开发成本的约束下,开发人员只需要做到尽可能的让头等舱和经济舱更加舒适。但是根据上面提到的,头等舱和经济舱之间的特性不同,能提供的服务也不同,难免会出现一些服务只能对头等舱提供的情况。这并不是件坏事。恰恰正是这些服务,促进了一些原本打算买经济舱票的乘客转而购买头等舱票。这正是我们想看到的事情——越来越多的新技术能得到实际应用,而非迁就某些旧环境而停滞不前。这里顺带提一个很多开发人员容易犯的错误。很多开发人员也认为,经济舱和头等舱也应该保持一致,于是他们就降低头等舱的规格,原本有的多媒体中心也不用,连座位都缩水到经济舱的水平,并且自认为,他们做了一件公平合理的事情。但事实上,虽然看起来对经济舱的用户很照顾,但他们并被有额外增加经济舱用户的服务;不仅如此,他们还剥夺了头等舱用户应该享受的额外服务。因此,无论从技术上讲,还是从道理上讲,这恰恰是一种web开发的倒退。

经济舱和头等舱也应该保持一致,这个想法本身没有任何问题。事实上,这是一种应该值得提倡的做法。关键在于如何“保持一致”。一名乘客购买飞机票的目的,无外乎是想从一地旅行到另一地。携载乘客飞行才是航班应提供的最根本服务。宽大舒适的座位也好,最先进的娱乐设备也好,这些只是为了改善乘客旅途环境的一些附属措施而已。一个航班若是飞错了航向,停错了机场,恐怕是有再好的飞行环境,乘客也不会买你账吧。所以,对于一次航班,应该保持一致的服务就是“顺利的把乘客运送到目的地”。对于一个网站来说,它的基本功能是提供一种信息服务。用户最终关心的,自然是网站提供的信息是否有用。你完全可以用花哨的形式来吸引用户,但是网站的必要因素不是形式,而是内容。如何使任何浏览器的用户都能顺利地接触到网站内容,才是开发者要下功夫的地方。至于具体如何实现,W3C和世界上其他不少的组织都制定了相关的web 可用性准则。在这里我郑重声明:虽然我的blog skin不会完全支持IE6等旧款浏览器,但是我会保证我的blog在任何浏览器下都是可用的。如果出现类似于“IE6下无法看到输入框内文字”的现象,请当作bug并务必和我联系,我一定会及时对这些问题进行修复。只要你有浏览器,我一定尊重你的权利,让你也能顺利访问这个blog。事实上,我也会尽可能让所有浏览器的特性都得到充分发挥。目前如果您使用IE6访问的话,您唯一不能享受的特殊服务是所有的png背景图片,而仅能看到色块背景。另外考虑到IE6的性能,一些特效也会被禁用。其他功能,如布局、样式等都与其他浏览器大致相似。最终提交给cnblog的共享版本中,都会加入一些折中的解决方法。但是,正如我前面所说的,为了技术的发展性,我自己的这个实验性的blog不会采用折中或者取巧的办法迁就IE6的功能不足,还请IE6的用户谅解 //bow

当然也有人会说,你这次航班的经济舱不如下次航班的经济舱舒适,所以不搭乘这次航班了。这个完全OK。每次航班的乘客定位一定是有所不同的。网站也是。一个商业网站,出于商业目的,自然不希望IE6的用户都打水漂,所以它会将如何优化旧款浏览器的表现和性能作为一个很重要的课题,并纳入开发成本中。但是,我这个blog的定位,既然是技术blog,那么自然不会对IE6等旧款浏览器做太多不实用的优化。不过在上面我已经提到了,我会保证做到blog 的可用性。虽然我不赞成你用IE6,但我誓死维护你用IE6上网的权利。即便你用Lynx,我仍会保证你能顺利的读取这个blog的内容。当然,人难免有疏漏的时候。如果有可用性的bug,请务必指出。

另外,正在使用IE8或者FF3的用户,你们正在驾驶着火星登陆舱。您在驾驶之前一定已经意识到了,驾驶这些实验性的登陆舱是有风险的。因为我们还没有火星旅行的任何经验,所以只能尽可能,从理论上保障你们的生命安全和旅途顺利。如果,只是说如果,出现什么意外,只能靠宇航员您自己尽力解决了。

至于那些用独立安装版IE6或者Maxthon,螣讯等浏览器的用户,你们正骑着一辆私自改装的轻摩化助动车上路呢。虽然这两车看上去和普通的助动车IE6没什么区别,但是它其实经过一些不为人知的改装,并且这些改装在不知不觉中影响着骑车人您的出行安全和骑车体验。比如,一个为助动车设计的刹车闸,可能因为改装车私自变动了刹车逻辑而根本不起作用。所以,使用加壳浏览器的朋友们,为了你们的安全考虑,还是请用正规版本的浏览器+插件的形式会比较好。

- 网页占用50%CPU

有意思的是只有少数的人提到这个问题。多数人反映的问题其实是“慢”——就是上面说的访问时间的问题,而不是“卡”。大家从字面上就能看出其中的区别。这里我要说明的是,任何网页在呈现的时候都会占用CPU。如果一个网页在呈现的时候不占用CPU,那么……呃,我们还要CPU干啥?汗~

先不说这个,仍旧看实测数据吧:(数据均为IE7 cache禁用状况下,10次测试的平均值)

  • 我blog的首页,iexplorer.exe CPU峰值为33%
  • 博客园的首页,CPU峰值也为33%
  • www.sina.com.cn 首页,CPU峰值为58%
  • 一直自诩性能优化的很好的yahoo.com,首页CPU峰值为44%
  • 博客园随机找了一个使用很干净、没有任何图片的皮肤的博客,CPU为27%
  • google.cn, 23%

这些数据,都是在同一台电脑,同一个浏览器中测得的。测试过程中尽可能多的禁用了其他无关软件和服务,保证得到的CPU使用率尽可能仅由浏览器产生。所以,根据这些数据从理论上分析,我blog首页的“卡”的程度,应该和博客园首页差不多,而远远没有新浪或者雅虎卡。但实际使用感受是,以上这些网页,都没有能让我明显感到卡。这是为什么呢?很简单,人对时间维度的感受远远不能和CPU时间相比。1ms和500ms,对于CPU来说可能相差成千上万个运算,但是对人来说,只是一个笼统的“一瞬间”而已。CPU峰值对于用户使用对于一个普通的网页的体验来说,没有任何意义,更重要的是CPU峰值持续了多长时间。用户之所以觉得这些网页都不卡,是因为它们的CPU峰值,都没有超过1秒。事实上,用鼠标滚轮滚动上面的任何一个网页,都会产生20%左右的CPU占用率,cnBlogs的富文本编辑器加载的时候,CPU占用率50%以上,并且持续大约5秒的时间。即便这样,用户也都是接受的。

也有人会这样认为:“你不能保证所有的用户电脑都和你的一样好,对于那些电脑比较低端的用户,33%的占用率可能就是100%了。”

为了释疑这样的观点,请先看截图:

iPod Touch Safari访问棕熊@Think Fast截图

这是我用iPod Touch的Safari访问我的blog的截图。访问的过程中也没有觉得卡。iPod Touch的处理器主频最高只有620MHz,平时为了降低功耗,都是工作在320MHz的频率下。内存也只有128M。我相信现在还在使用的电脑,尤其是开发人员的电脑,性能都不应该比一台移动设备差吧?

很遗憾,即便在这样的移动设备上,都没能重现“卡”的问题。但是,既然有人提出了这样的问题,还是尽量给一些尝试性的解决放案吧:
  1. 如果您还在使用IE6等旧版本的浏览器,请升级至该浏览器的最新版本。如果您使用Maxthon等加壳的浏览器,请将其卸载,并尽可能使用IE7, FF2等正规的浏览器。
  2. 如果上面的办法不奏效,请安装一款最新的杀毒软件,并升级至最新的病毒库,并彻底查杀您电脑中可能存在的病毒或恶意软件。
  3. 如果没有任何病毒或恶意软件,请运行scandisc,检查您的硬盘是否有坏道。如果有的话,请替换这块损坏的硬盘。
  4. 如果硬盘也没有损坏,那么建议您重新安装您的操作系统。99%的类似问题,在重装系统之后都能得到解决。

希望这些建议对大家能有帮助。如果您的确还是觉得很卡的话,也可以将您具体的电脑配置,浏览器版本以及网络环境告诉我,我好看看可能是什么原因。

- 黑颜色的不好看

- 黑底白字看起来很晃眼

这里要再次遗憾下。审美观一直是个众口难调的东西。每个人对“好看”的理解不一样,如果您的审美观和我不太一样,那么,只能委屈您了。

至于有人说“黑底白字很伤眼睛”,这个却又是个个中说法不一的事情。的确有人认为黑底白字很晃眼。事实上有很多电子书软件和文字编辑软件,包括Microsoft Word,都提供黑底白字显示的功能,恰恰宣称为了保护眼睛。不过有一点可以确定的是,无论黑底白字,还是白底黑字,它们都是通过提高反差来提高文字的可读性。而很多人认为的“降低背景和文字的反差能保护眼睛”的观点恰恰是错的。比如这段文字——怎么看都比黑底白字、白底黑字都伤眼睛才对。

可是我就是看你的博皮样式不爽怎么办,你有办法让我也满意吗?

当然有的。本着“你可以不同意我的看法,但你不能剥夺我说话的权利”的理念,W3C早在CSS1的规范中就明确指出:“浏览器、文档的制定者(网站开发人员)和用户都有权利定制文档(即一张网页)的样式”,并且“浏览器规定的样式规则会被文档制定者规定的样式规则替换。文档制定者的样式会被用户制订的样式规则替换”。是的,如果你不满意我的博皮话,你完全可以自己制定这张页面的样式。在IE7和Firefox中,你都可以选择不加载某个网页的样式。而Opera更进一步,能让你加载自己定义的样式表,彻底重载这个页面中的样式。你完全可以把这个页面定制成白底黑字,去除所有的背景图片,甚至可以仿成windows的蓝屏,一切都由你掌控。Firefox和IE7也都有一些插件提供这样的功能。您完全可以通过这些来行使你自己的权利。当然,如果您使用的还是IE6,那么我只能表示遗憾,IE6并没有很好的维护你的权利。不仅在定制样式上,很多其他的方面也是。IE6并不是对开发人员不友好——它的确有这样那样的bug,但是几乎所有的bug,开发人员都有很多成熟的方法去修补或者规避。IE6真正不好的地方,体现在对用户的不友好。它禁止用户去正当享受一些规定的权利,导致用户都不知道自己能干什么,在一个网页上有多大的主动性,最终不得不完全依赖开发人员。但很遗憾的是,开发人员永远要照顾一大群用户,很难,甚至是不可能做到一碗水端平,所以只能以满足大多数用户为目标,导致总是有用户会对一个网页感到不满意。那些有不满的用户,本来完全可以通过行使自己的权利,让自己的用户体验更丰富,可惜,IE6却不让他们享受这样的平等待遇。所以,如果您还在用IE6,还是请尽快升级吧。

 

以上。这个博皮再继续稳定一段时间,继续听取用户意见后,会加入对IE6的样式支持并提交给博客园,给大家共享。也算是我为这个社区做点小小的贡献吧。

那么,下次再见了哟

posted @ 2008-04-27 20:26 棕熊 阅读(...) 评论(...) 编辑 收藏