从浏览器看背后文化

新鲜货

在这个黑色的夜晚打开我的Q10(此编辑器很好用但不是很强大,如果你要使用必须有心理准备,它是专门用来写文章的),面对黑黑的屏幕还要跟无处不在的蚊子做斗争.不过我觉得我们正在使用的浏览器与其背后的企业文化之间的联系很有挖掘的潜力.我在本文中提到的浏览器有IE,Firefox,Safari,Opera,很幸运虽然大家都在骂着微软的不是,但是我们只有在Windows系统上才有可能同时完美体验以上四种浏览器,话题扯远了.

过于追求全面的IE

IE的内核其实很优秀,它的容错能力很强,与其他几款浏览器相比丝毫不逊色.但是我们总在抱怨IE打开网页很慢,比较卡,而且容易崩溃(虽然这些情况在IE7中已经得到了很大改善).其实这IE的设计思路有关系,IE设计出来就是要解决所有问题,而且作为内核的一部分,它必须有很强的通用性与兼容性.鱼与熊掌不可兼得,广泛地支持必然带来性能地损耗.所以我们在讨论IE的未来的时候并不是要它增加什么功能,而是应该去掉哪些功能,希望微软的IE8和微内核操作系统Windows 7能给浏览器用户带来更好地体验.

最近我看到的一则关于几大浏览器的js性能评估,其结果很有趣.在大家眼中慢得不行的IE在这项评测中并不是排在最后,当然也不会离谱到排在首位,而是不愠不火的排在中间.我想这应该就体现了微软的企业文化,微软作为一个软件行业的巨无霸,它在软件中的每项改进都会牵涉到太多方面,所以规规矩矩地中庸之道才是它的本色.因此才有了业内盛传的一句话,跟着微软走,就是错了也不会错到哪去.值得一提的是,微软的这种文化其实发迹于它的开发者文化,微软是一家对开发者非常友好的企业,这种友好甚至超过了其对用户的友好,全世界最好的编程文档库msdn,每天都有无数人在那里分享着自己的开发经验,正是开发者的推动才造就了现在Windows平台应用软件百花齐放的现状.

自由的Firefox

Firefox是我现在主要使用的浏览器,其原因它本身非常自由,而其开源的特性让我感到亲切.Firefox是一个很好用的浏览器,但是你要让它服服贴贴还得费点劲找些插件.Firefox本身对标准支持得非常好,在其平台上写网页,只要是你按照标准来,就是所见即所得,而不会像IE那样产生很多让人困惑的问题.这里不得不批评一下微软,微软虽然是一家对开发者很友好的企业,但是对于标准的支持可以说是非常不友好.毕竟企业太大,对一些不疼不痒的标准,总会显得不够重视,不过IE8团队已经明确表示在下一版中增强对W3C标准的支持.

让我们再回到Firefox,如果说在Firefox上使用真的有哪些不爽的话,那可能就是其内存的占用量了.使用上应该追求自用,但是如果在内存的使用上太自由就不好了...从Firefox 2.0.1 一直到现在的 2.1.1,除了修复了几个大半辈子都不会碰到的安全问题,我们最关心的内存占用量依然彪悍,不过本人现在换2G内存了,就让它慢慢泄露去吧.另一个问题,就是在标签切换时很容易出现死机或者崩溃,这个问题不仅在Windows上经常出现,而且在我的ubuntu里也会让人到无法忍受的程度.希望Firefox 3能够真正解决这些我们最关心的问题,其它至于UI/UE的改善我都觉得无所谓,反正我要换皮的,哈哈.

对了,还有个不大不小的问题,不知道大家遇到过没有.就是Firefox经常在用了一段时间后,表单快捷键就实效了,比如切换表单的tab键,以及提交表单的回车键.这个问题的出现没有任何征兆,经常在我搜索东西的时候就突然发现回车没有效果了.

追求设计师文化的Safari

用Safari的时间不长,没有什么发言权,不过对于在Safari下调试网页却是有一些不满.Apple对设计师文化的过分追求,有的时候会扼杀我们开发者的积极性.举两个例子,Safari网页中的按钮,我承认确实很好看,玻璃透明的给人一种很想点的感觉.可是有一天,我突然需要一个大按钮,于是我把按钮的height值设为30px(没有设置border),在我设的时候就在想,不知道Safari的大玻璃按钮是什么效果.跑到Safari下面一看,好嘛,压根没变,不论你把按钮的高度值设为多高,它只给你呈现一个默认的高度,这样确实保证了效果的统一性,我不得不骂了一下苹果工程师的狡诈.另一个例子,Safari的表单元素聚焦效果,虽然我们经常使用这种技术来告诉用户他们正在哪个地方输入,但是Safari这种自作主张地给所有表单元素都加上这种效果,显然让人很恼火.有些隐藏的输入框,在这种愚蠢的效果渲染下,会显得非常丑陋.我想Safari至少应该提供给开发者一个接口,让其在某些表单上可以禁用这一效果,或者说它已经提供了而我并不知道,请知情者明示.

另外要提到的一点是,Safari的js支持着实不佳,其对dom节点的处理很奇怪.举一个例子,一个父节点有20个子节点,当我要更新所有子节点时,通常会先把所有的子节点先删除,然后再挂上新的子节点.但在safari中,如果你新挂子节点比原来的少,那么奇怪的现象出现了,原来的子节点不会消失,新挂的子节点只是覆盖了原来的子节点,多出来的子节点会一五一十地显示出来,也就是说你的删除操作根本一点用的都没有(本现象在由select作为父节点,option作为子节点时可以重现).

夹缝中的Opera

我实在不想这么评价Opera,但是这就是现状,我大学用了3年的Opera,第一年不能买电脑除外.相对于Firefox的突飞猛进,这款来自北欧的浏览器显然缺少了海盗的精神.我深刻理会这种夹缝现状还是一次在Opera下调试js引起的,此js的大概结构是

if(isFirefox) { 执行Firefox下的代码. } if(isIE) { 执行IE下的代码. }这段代码的原形是网上的,大概作者所处的时代只需要考虑IE和Firefox,而我把这段代码放到Opera上面运行后,奇妙的事情发生了,Firefox和IE下的代码都执行了.Opera作为一个后来者(虽然其历史很久远)必须兼容这么多浏览器的代码,也真够它受的.这样让我感受到了Opera的无奈,于是这段代码被改成

if(isFirefox) { 执行Firefox下的代码. } else if(isIE) { 执行IE下的代码. }时间不早了,就说到这吧,本文对各位选择浏览器没有任何参考作用.顺便提一下,本文的题图与内容亦无任何关系,只是觉得比较养眼所以拿来撑场面.如果觉得不错可以去Vladstudio取.

已有 6 条评论
  1. 沙发啊,浏览器众多,百花齐放,但是一按照标准,最终又要回到一个点了!可能是百川归海了吧!任何东西都没有完美的状态,各有各的特点!我们反而在将这种状态积压,想使他成为一个点,结果可能像“共产主义”这样的理论了吧!^_^

  2. 虽然这些浏览器都装了,但是Opera依然是最爱。

  3. Opera作为一个后来者(虽然其历史很久远)必须兼容这么多浏览器的代码,也真够它受的.
    这句最搞笑。

  4. 路过

  5. Vichair
    Vichair

    以前只用opera的社区,浏览器还是FF

  6. 手气不错
    手气不错

    如果有 IE 的兼容性,Safari 的效果,Opera 的速度,加上 Firefox 的版权问题,最后同时完全遵照 Web 标准设计,那么这个浏览器将会使完美的