最近,问了很多有关兼容性问题的解决示例,大部分人回答都是非常片面,甚至可以说是他们基本上没有碰到什么兼容性问题。
对于很多用jQuery的前端来说,基本上很难在js上碰到兼容问题,大部分如dom操作,事件等之类兼容问题,jQuery都能很好的解决。
那为啥现在的趋势是“去jQuery”化呢?

jQuery开发容易出现的问题

  • 容易出现代码结构混乱(当然,有良好模块化编程习惯的还好)
  • 对DOM的大量操作,消耗浏览器性能

兼容性问题的凸显

为此,vue,react之类的模块化的框架风生水起。
当然,你也可以在这些框架里加入jQuery,但是,这些框架都是用数据操作视图,而不是直接的对DOM进行操作。
因此,jQuery在此处的用处也就不见得那么大了。

css兼容问题

  • css3动画等需要加浏览器前缀的--可以用打包工具autoprefixer解决
  • Android,ios版本不同,对一些新出来的css属性的兼容性,如rem、em、vh、vw等
  • ios手机特有的一些问题:对position:fix的支持效果很差、对overflow:auto的支持效果很差,需要加其他css才能解决等
  • 不同手机型号的兼容问题:魅族手机,oppo手机等之间兼容也有差异,比如魅族不支持0.5px

js兼容问题

  • 对于pc端DOM事件的兼容性,太多了。。。。。
  • 一些新的api的出现,导致的一些兼容问题。如classList-IE基本不支持该属性,但是它操作css非常方便,完全可以代替jquey的addClass等函数。关于此类api的兼容新,可以从caniuse.com中查看浏览器兼容性

当然,浏览器一统天下的日子,可能还很长,问题也会一直出现,解决兼容问题,耐得住烦,积极总结经验,才是王道


Lizzy0077
73 声望7 粉丝

前端