Web开发要做好浏览器兼容谈何容易?

news/2024/7/7 18:35:32 标签: 前端, c#, javascript


浏览器兼容虽说是web开发的基本要求,但是要做到完全兼容各种浏览器谈何容易?对于开发和设计都由程序员兼着的小公司的信息部门来说,更是雪上加霜。就连京东商城,包括百度做出了的东西,也都很难保证主流浏览器的完全兼容。其中最典型的是京东,经常性地用Firefox打不开,看来是只兼容IE族啊。一次在京东上给孩子买奶粉的时候,还以为京东被黑了,可是换了IE浏览器一切正常。我给京东写过邮件反映过此问题,现在情况好多了,但还是偶尔会遇见火狐打不开的情况。而本以为百度在兼容性方面做得天衣无缝,可是今天在上传文档到百度文库的时候,出现了Firefox不能上传而IE可以的情况。看来要做好兼容性谈何容易?

我认为原因主要有以下几点:

  1. 浏览器种类和版本多,并且其渲染引擎的工作原理不一样,俗称的浏览器内核不一样。导致了要做到兼容工作量很大。随着web标准的推行,这种问题虽然比以前有所减少,但还是不容乐观。导致Web前端设计者每改变一点代码,就要在所有主流浏览器上跑一遍。并且一旦发现了不兼容的情况,要找出问题原因并给出解决方案并不是一件容易的事。这一点我很有体会,导致我对web前端的编码非常小心,有时根本不敢写,想实现一些特殊的效果,只能到别人的网站上借鉴:)。在这个过程中Firebug帮了我不少忙,也学习了很多前端知识。但如果要我选择BS还是CS哪种方式,我会首选CS,因为BS方式的开发经验告诉我很难做好,开发体验很不愉快。看来Silverlight真是程序员需要的(浏览器中的C/S开发),门户网站因为存在部署成本,相对于HTML+JS的方式,很难大面积推广。

  2. 浏览器的javascript引擎工作原理不一样,尤其是JS和DOM在一起写代码的时候,你也不敢写,同样不能保证兼容性。于是JQuery等框架满天飞,当然借助这些框架可以节省我们很多宝贵的时间。但是毕竟我们不是专业的前端开发者,你对JS很熟悉吗?比对C#还熟悉?而且,使用框架的尴尬是不敢跳出框架的范围,一旦跳出了,就担心兼容性是否被破坏了。

  3. 前端开发是需要经验积累的职业。知识零碎是我的第一印象,HTML、css和js哪一样要想精通都不容易。然而,业内对其技术含量并不尊重,没有好用和专业的IDE这一点就可见一斑,Js被大多数人看作脚本语言,更说明了很多人根本没给予充分的重视。开发者都不重视了,还怎么做到兼容性。我敢说公司要招聘到一个有经验的前端工程师并不容易。

     其实企业选择Silverlight开发也是无奈之举,毕竟C#+XAML就能搞定一切,成本低。就让程序员兼着前端开发吧,我不用招聘2倍的人。毕竟,内部应用部署个SL很轻松,更何况SL更强大,想怎么做就怎么做,更适合行业软件的开发。程序员也更喜欢这种C#前后端一体化开发的方式。

  然而,HTML应用不会被任何东西取代,我也仍然需要积累前端开发的知识,其实也不用悲观,因为有大量的成熟网站可以被我们拿来研究。也许随着时间的积累我会不再惧怕前端开发。

 

 

 


http://www.niftyadmin.cn/n/1385612.html

相关文章

windows系统通过CMD将文件copy到远程电脑

在需要上传文件的电脑上使用管理员权限运行cmd,输入runas /user:administrator cmd 回车net share IPC$ net use \\IP地址\ipc$ password /user:username xcopy note.ejs \\IP地址\C$\clothes\views /Y net use \\IP地址\ipc$ /delete转载于:https://www.cnblogs.co…

Extjs中FieldSet的收缩和展开实例

Extjs中FieldSet的收缩和展开实例: FieldSet表单控件属于Ext.form.FieldSet的类,继承自:Ext.Panel,表示对某一组字段的标准容器,其中最主要的一个功能就是收缩和展开收缩与展开demo: items: [id:check_email_hacklog_s…

简单的dp加贪心

题目链接:传送门 这个题目让我纠结了好久,之后恍然大悟是求最长的递减序列,并加上贪心的算法,如果有大于两个的发射系统,应该判断使导弹的高度与此时个个发射系统的高度比较,选取高度差最小的去执行这次的拦…

python文件目录下的__init__文件

一、声明包 python 中的项目结构是按照目录来组织的,每个python 文件就是一个模块,将模块整合在一起就是包,也就是把服务于某个功能的一系列模块放在一个目录中,这样如果想要使用某个包中的某个功能,只需要导入相应包中…

DBunit、Spring TestContext实践

1、定义接口UserDao.java package com.bao.dbunit.dao;import com.bao.dbunit.entity.User;public interface UserDao {public User getUserByNick(String nick);public void save(User user);public void update(User user);public void remove(String nick);}Pojo类&#xff…

微信公众平台开发(105) 分享到朋友圈和发送给好友

<script type"text/javascript">function onBridgeReady() {var mainTitle"华章书院",mainDesc"2014最受企业家喜爱的商业图书评选",mainURL"http://hz.huiyiw.org/hzshuyuan/home/index.php",mainImgUrl "http://hz.huiyi…

linux环境下载google云盘文件

python环境下安装gdown pip install gdownAfter that, you can download any file from Google Drive by running one of these commands: gdown https://drive.google.com/uc?id<file_id> # for files gdown <file_id> # alt…

java上转型和下转型(对象的多态性)

/*上转型和下转型&#xff08;对象的多态性&#xff09; *上转型&#xff1a;是子类对象由父类引用&#xff0c;格式&#xff1a;parent pnew son *也就是说&#xff0c;想要上转型的前提必须是有继承关系的两个类。 *在调用方法的时候&#xff0c;上转型对象只能调用父类中有的…