在公司做需求的时候,应为客户或市场的需求不得不兼容低版本浏览器,例如IE8,大家在平常工作中是怎么处理兼容问题的呢?
说下我目前的解决方案吧,同时也希望大家能提出自己的解决方案。
Firefox
和Chrome
本身问题倒不大,而且调试起来比较方便,问题一般不大,主要是IE
。
Windows系统
使用低版本IE,win10
可能不支持,另外自带的调试工具,用起来真的反人类,毕竟是好几年前的产物了。有时候调请求,还不如用fiddler
。
浏览器使用IE11(使用内置开发者工具的仿真选项可以模拟IE7-11各浏览器,总体来说还可以,因为本身的开发者工具比较新,调试起来还比较方便,但是会有部分css和js问题在仿真模式和实际的效果不一致)
使用IETest,说实在我觉得这工具真心不好用,调试工具和1一样比较老,看一看样式问题还行,调试js错误什么的比较累。
类Linux系统
这个IE的话,可能还要跑个虚拟机,然后到了虚拟机有碰到了和上面Window系统
一样的问题。
共有云端测试
这个有bowserstack
(支持本地调试,需要安装chrome插件)等等,这个收费有点贵,大概29$/month,貌似还是一个人的。支持大部分浏览器,但是速度也比较慢,不过也算一种还行的方案。
私有云端测试
这个之前貌似去一个讲座的时候,有人说过,在是私有云的话,第一速度快,第二好定制点。
目前个人比较希望用的应该是私有云测试
,但是目前不知道有没有比较好的开源方案。
欢迎大家提出意见,一起探讨,谢谢大家~
个人觉得上面的思路不对,是应该在明确了兼容性需求后,进行开发的时候就要考虑到这些兼容性问题。而不是正常的都做好了,才来测试、发现、调试解决这些问题。
如果确定需要兼容IE8,那么在开发的时候就应该要处理好一些常见的问题。比如:
IE8的window对象下没有JOSN,需要使用JSON库。
IE8下较多情况不会重绘,需要单独处理。
IE8下事件绑定的兼容写法。
IE89不开控制台时没有console对象,所以最终的代码中不能存在console调试代码。
IE8基本不支持css3,IE9仅仅部分支持 一些样式的降级处理方案。
。。。
开发前就明确兼容性需求,开发时就处理好相应的兼容性问题。最终产品完成后,只用正常的在相应浏览器上奏一遍功能性测试即可。兼容性上基本不会存在问题。
我在的公司产品全面要兼容IE8,部分还要到IE7,一直使用的是这种形式。对于一些不能实现的效果,直接沟通告诉客户,低版本浏览器下只保障实现功能,样式兼容处理,不能达到和高版本浏览器相同的效果。
无论什么测试工具,发现问题后最终还是要解决的,最好的处理方式不应该是从源头上就处理吗?如你所说,那低版本的IE,调试要么不能,要么反人类。
工具的话推荐一个:阿里的 F2ETEST,部署比较麻烦,但是功能不错,也挺好用。
最后,其实公司有一定积累的话,你会发现,要兼容的其实不只是IE,chrome和Firefox也都存在一些问题的,只是相对少了很多而已。