说说Firefox这款争议颇多的浏览器。 有关Firefox的争执,从它挑战IE霸权地位的那天开始就没有停息。之后,随着Google联手Mozilla的Adsense推广计划,更是让Firefox的争论“火上浇油” - 大量丧心病狂的垃圾网站作者开始像90年代的传销商那样推广Firefox牟取暴利。上当受骗又不明真相的群众开始恶意诋毁Firefox浏览器本身。更令我感到遗憾的是,Mozilla监的管反应实在是太迟钝了,以至于眼睁睁看着Firefox在国内沦为“流氓软件”的一员。不过,这样也好,如果都是为了浏览低俗站点而成为Firefox用户,这样的人还是少一点比较好……
幸运的是,我接触Firefox并不是被这种低俗网站强硬推介,所以心态也平缓许多。初次接触是06年,在一些朋友的推荐下开始逐渐尝试利用Firefox取代IE的。然而,真正让我“爱上”Firefox的原因,却是“它所提供的强大调试功能正好符合我的工作需求”。我当时在公司负责全部的前端开发,自然也非常需要这些工具。这一点,和许多热爱这款浏览器的同行一样。而也正是那些Firefox的反对者无法理解的因素所在:对于一个不需要编写DOM结构和JavaScript脚本的人来说,Firefox的许多王牌插件毫无价值。
总之,那时候有一批优秀的插件吸引了我:CSS Viewer、JSView、Live HTTP Headers、View Source Chart、Web Developer等等。然而,最令人动心的,莫过于Firebug了,它优雅地集合了前面所列举插件中90%的功能。虽然我已经忘记具体是在什么时期接触Firebug的,但我清楚地记得是这款插件让我彻底依赖上了Firefox:对于一个利用JavaScript写交互页面的开发者来说,Firebug的console和DOM Inspector可以节省他90%的时间!
然而,期望越大,遗憾也就越多,久而久之,Firefox的缺点也逐渐显露出来。当使用一定时间之后,Firefox竟然要5-10秒钟才能启动,这对我来说是无法容忍的糟糕体验!而且,“开发需求”和“浏览需求”本身交集太少,前者要求对页面,包括网络流、事件流都能全方位把握和掌控,而后者则要求更快地启动速度、更好的浏览体验(例如可拖拽式标签)等。我的Firefox安装了许多形形色色的插件,越来越笨重。而这些插件又来自不同的第三方个人或者团体,水平参差不齐的代码造成了相当程度的内存管理不善,也就是大多数人所说的“内存泄露问题”。
因此,即便是再好的硬件支持,插件不断增多总是会带来麻烦。久而久之,我认识到,与其指望那些第三方插件能尽快改善效率,不如自己对不同的需求进行分组,然后归纳出不同的Profile! - 每个Profile只安装当前需求所需要的插件。例如,当我需要开发页面的时候,就加载JS View、User Agent Switch、Firebug等插件;当我只需要浏览的时候,就不用加载这些插件。
其实,Firefox自身的profile功能原本可以非常优雅地解决这个问题,然而,Mozilla的开发者们直到Firefox3也没能做好这些!切换一个Profile居然必须关闭所有的Firefox进程,这把Profile存在的意义大打折扣了。
终于,在2008年9月,Firefox 3发布时的激情终究没有敌过Chrome闪电战般1.0、2.0b的两轮攻势。启动速度极快、输出独立应用程序和Profile切换这三个我最重视的特色让我的Firefox逐渐沦为一个开发工具,而不是浏览工具了。
其实这三点对Firefox来说,从技术上完全没有什么难度,但Mozilla的工程师很遗憾地没有抓住问题的关键。在这个“得浏览器者的天下”的Web时代,Firefox应该低下头向Chrome学习了……