浏览器兼容虽说是web开发的基本要求,但是要做到完全兼容各种浏览器谈何容易?对于开发和设计都由程序员兼着的小公司的信息部门来说,更是雪上加霜。就连京东商城,包括百度做出了的东西,也都很难保证主流浏览器的完全兼容。其中最典型的是京东,经常性地用Firefox打不开,看来是只兼容IE族啊。一次在京东上给孩子买奶粉的时候,还以为京东被黑了,可是换了IE浏览器一切正常。我给京东写过邮件反映过此问题,现在情况好多了,但还是偶尔会遇见火狐打不开的情况。而本以为百度在兼容性方面做得天衣无缝,可是今天在上传文档到百度文库的时候,出现了Firefox不能上传而IE可以的情况。看来要做好兼容性谈何容易?
我认为原因主要有以下几点:
-
浏览器种类和版本多,并且其渲染引擎的工作原理不一样,俗称的浏览器内核不一样。导致了要做到兼容工作量很大。随着web标准的推行,这种问题虽然比以前有所减少,但还是不容乐观。导致Web前端设计者每改变一点代码,就要在所有主流浏览器上跑一遍。并且一旦发现了不兼容的情况,要找出问题原因并给出解决方案并不是一件容易的事。这一点我很有体会,导致我对web前端的编码非常小心,有时根本不敢写,想实现一些特殊的效果,只能到别人的网站上借鉴:)。在这个过程中Firebug帮了我不少忙,也学习了很多前端知识。但如果要我选择BS还是CS哪种方式,我会首选CS,因为BS方式的开发经验告诉我很难做好,开发体验很不愉快。看来Silverlight真是程序员需要的(浏览器中的C/S开发),门户网站因为存在部署成本,相对于HTML+JS的方式,很难大面积推广。
-
浏览器的javascript引擎工作原理不一样,尤其是JS和DOM在一起写代码的时候,你也不敢写,同样不能保证兼容性。于是JQuery等框架满天飞,当然借助这些框架可以节省我们很多宝贵的时间。但是毕竟我们不是专业的前端开发者,你对JS很熟悉吗?比对C#还熟悉?而且,使用框架的尴尬是不敢跳出框架的范围,一旦跳出了,就担心兼容性是否被破坏了。
- 前端开发是需要经验积累的职业。知识零碎是我的第一印象,HTML、css和js哪一样要想精通都不容易。然而,业内对其技术含量并不尊重,没有好用和专业的IDE这一点就可见一斑,Js被大多数人看作脚本语言,更说明了很多人根本没给予充分的重视。开发者都不重视了,还怎么做到兼容性。我敢说公司要招聘到一个有经验的前端工程师并不容易。
其实企业选择Silverlight开发也是无奈之举,毕竟C#+XAML就能搞定一切,成本低。就让程序员兼着前端开发吧,我不用招聘2倍的人。毕竟,内部应用部署个SL很轻松,更何况SL更强大,想怎么做就怎么做,更适合行业软件的开发。程序员也更喜欢这种C#前后端一体化开发的方式。
然而,HTML应用不会被任何东西取代,我也仍然需要积累前端开发的知识,其实也不用悲观,因为有大量的成熟网站可以被我们拿来研究。也许随着时间的积累我会不再惧怕前端开发。