应该处理浏览器兼容性问题吗?
当我们谈论浏览器兼容性时,大多数时候我们将其定义为应用程序将支持的最低版本的浏览器列表。例如: -应该处理浏览器兼容性问题吗?
IE9 +,Firefox的25 +,Chrome浏览器32+等
当测试兼容性,我们一般测试基线和最新版本。 如果我们想使它更广泛,我们可以使用诸如SauceLabs之类的工具来测试它们之间的所有版本。
我的问题不是关于我们是否可以测试兼容性,而是应该如何或应该如何考虑应支持哪个版本的浏览器。
例如,我遇到了aurelia-polyfills
的问题。
该库无法加载到Firefox 35中的行(function(o, s) { ... }(Object, Symbol))
与Symbol is not defined
。
此代码在Firefox 29和最新版本(54)中正常工作。我不知道35之前和之后有多少版本会遇到这个问题。
这个问题,国际海事组织,有更多的火狐浏览器和更少的库,因为它应该取消Symbol
为undefined
并让代码检查并正确处理它。这与IE不能正确处理enum
等关键字的问题类似。
现在,问题是,如果这被认为是图书馆的错误,或者图书馆应该声明这个中间版本的Firefox不被支持?
一方面,排除这个版本是有意义的,因为它是浏览器的“错误做法”。图书馆作者无法对浏览器产生的任何和所有问题进行殴打。特别是现在,与过去相比,新版本的浏览器更为频繁。一些错误将会发生。
另一方面,这恰恰是“浏览器兼容性”的意义所在,应予以处理。图书馆作者不能忽视它们,因为它们被用户使用。但在这种特殊情况下,它不会工作,因为每当访问Symbol
都会使系统崩溃。
另一点是,当浏览器兼容性表更新时,它会“转移”到出现问题的那些版本。
这意味着要么将兼容性表从“IE9 +,Firefox 25+,...”更新为“IE10 +,Firefox 35 +,...”和“WTF”,要么强制使用更窄的表格。 “IE10 +,Firefox 52 +,...”。
我认为我们不得不硬着头皮,继续支持“所有最新版本”,或者在兼容性表中留下一些漏洞,只支持“黄金版”。
你会推荐什么?
顺便说一句,我没有任何反对Firefox,只用它作为例子。
对于自动更新浏览器(Chrome,FX,Safari,Edge)仅支持最新版本。军团可以冻结旧版本,但支持旧版本可以收取费用并推荐。如果客户需要FX35支持,那么这将是一个非常简单的请求 - 当你不知道他们需要时,花费时间测试它并不符合成本效益。花钱在绝大多数客户首先需要的版本上。
另外请注意,旧版本是极端高风险-FX35缺少2年半的安全补丁,我甚至不会让安装它的机器访问我们的网络。
对于IE而言,它更加复杂。目前'现场'出现的有IE8,IE9,IE10和IE11 - 都有自己的怪癖和不兼容性,都不再积极发展,并且在非公司领域几乎全部死亡(具有新PC的非技术用户必须为了获得IE11而不是Edge,所以不会)。 IE11是一个僵尸 - 微软已经停止开发它,只是修补安全问题(直到2025年),但它仍然消耗各地网络开发人员的大脑。
一段时间以来,我认为IE中的最佳策略是完全支持IE11,并且在测试非常有限的情况下为IE8,9和10提供削减/丢失功能。如果在IE8中发现错误,请关闭该功能并推荐升级 - IE8用户无论如何都不期待流畅的动画和丰富的UI。
这真的归结为一个商业案例:支持大量旧版本会花费你的钱,它会赚什么钱? 定义用于支持这些旧版本的预算,然后确定适合的测试和支持策略。
我会去的所有浏览器的最新版本,其中一些例外:
- 我有一个客户,它已经冻结了谷歌的Chrome版本为所有他们的PC。
- 在另一种情况下,它们是在linux发行版的稳定版本中修复的firefox版本。这些案件分别受到处罚。
- 我会为网站的所有用户提供一个针对浏览器兼容性问题的问题日志,以便在发生问题时可以在您的测试和开发部门讨论问题,如果这个问题足够重要以处理特定版本的特定浏览器。
- 您还可以通过哪个平台进行通信,哪些版本已经过测试,哪些版本是您的最新版本。并捍卫你的“最新版本战略”。
我将添加一个声音到支持一系列浏览器版本的替代观点。
即使浏览器“自动更新”的事实是有一个通过时间。当然,你可以说大多数浏览器会在N天内切换到新版本,但是之后会有一个尾巴。从专业的角度来看,尾巴很长。在所有用户关闭特定浏览器之前,这是一个不小的时间。
当涉及到使用服务的用户时,有一个漏斗。百分之几的人最终在您的网站上 - >这些人可以使用您的网站的百分比(由于旧浏览器) - >这些用户中有多少人点击了注册按钮 - > .... - >这些百分比用户购买你的产品(或其他)。
在任何时候删除该漏斗的5%都有成本。这不仅是在测试时应该考虑的成本,还应该在决定支持哪种浏览器技术时考虑。
TL; DR:从支持尽可能多的客户的角度来看这一点。当您在其他地方获得的收益超过使您的漏斗变小的成本时,只允许缩小您的漏斗。
例如,我们决定削减< IE10是值得的,以便我们可以将我们的网站移动到flexbox。这是值得使用该网站的客户的n%,因为我们的开发团队可以制造更可持续的产品,这对我们所有其他用户都有实质性的好处。
也只是为了怀旧的缘故,这是一个随机的FF,因为支持一系列浏览器,我们必须修复这个错误:https://github.com/facebook/regenerator/issues/274 – AnilRedshift
优秀的答案。非常感谢! – unional