gpt4 book ai didi

javascript - 是否应该处理浏览器之间的兼容性问题?

转载 作者:可可西里 更新时间:2023-11-01 02:06:34 25 4
gpt4 key购买 nike

当我们谈论浏览器兼容性时,大多数时候我们将其定义为应用程序将支持的最低浏览器版本列表。例如:

IE9+、Firefox 25+、Chrome 32+等

在测试兼容性时,我们通常会测试基线和最新版本。如果我们想让它更广泛,我们可以使用 SauceLabs 等工具来测试其间的所有版本。

我的问题不是我们是否可以测试兼容性,而是我们应该或我们应该如何考虑应该支持哪个版本的浏览器。

例如,我遇到了 aurelia-polyfills 的问题.

库无法在 Firefox 35 中加载 (function(o, s) { ... }(Object, Symbol))Symbol is not defined.

此代码在 Firefox 29 和最新版本 (54) 中运行良好。不知道35前后有多少个版本会遇到这个问题。

IMO,这个问题更多地与 Firefox 有关,而不是与库有关,因为它应该将 Symbol 取消引用为 undefined 并让代码检查并正确处理它.类似于IE没有正确处理enum等关键字的问题。

现在的问题是,这应该被视为库的错误,还是库应该声明不支持此中间版本的 Firefox?

一方面,排除这个版本是有意义的,因为它是浏览器的“错误做法”。图书馆作者不能对浏览器造成的任何和所有问题进行殴打。尤其是如今,与过去相比,新版本的浏览器更加频繁。有些错误是必然会发生的。

另一方面,这正是“浏览器兼容性”的意义所在,应该加以处理。库作者不能因为客户使用它们而忽略它们。但在这种特殊情况下,它不会起作用,因为无论何时访问 Symbol 都会使系统崩溃。

还有一点是,当浏览器兼容性表更新时,会“转移”到那些有问题的版本。

这意味着要么将兼容性表从“IE9+、Firefox 25+、...”更新为“IE10+、Firefox 35+、...”和“WTF”,要么强制使用更窄的表,例如“IE10+、Firefox 52+、...”。

我认为我们要么硬着头皮继续支持“所有最新版本”,要么在兼容性表中留下一些漏洞,只支持“黄金”版本。

你会推荐什么?

顺便说一句,我对 Firefox 没有任何反对意见,只是以它为例。

最佳答案

对于自动更新浏览器(Chrome、FX、Safari、Edge),仅支持最新版本。 Corps 可以卡住旧版本,但支持旧版本是您既可以收费又可以反对的事情。如果客户需要 FX35 支持,那将是一个非常的单一请求 - 当您不知道他们会需要它时花时间测试它是不划算的。将这笔钱花在绝大多数客户首先需要的版本上。

另请注意,旧版本的风险极高 - FX35 缺少 2.5 年的安全补丁,我什至不会让安装了它的机器访问我们的网络。

对于 IE,它要复杂得多。目前“存在”的是 IE8、IE9、IE10 和 IE11——它们都有自己的怪癖和不兼容性,都不再积极开发,而且几乎都死在了非企业领域(拥有新 PC 的非技术用户必须竭尽全力获取 IE11 而不是 Edge,所以不会)。 IE11 是一个僵尸 - MS 已经停止开发它并且只修补安全问题(直到 2025 年),但它仍然在消耗各地 Web 开发人员的大脑。

一段时间以来,我认为 IE 中的最佳策略是完全支持 IE11,并通过非常有限的测试为 IE8、9 和 10 提供缩减/缺失的功能。如果您在 IE8 中发现错误,请关闭该功能并建议升级 - IE8 用户无论如何都不期望流畅的动画和丰富的 UI。

这实际上归结为一个商业案例:支持大量旧版本会花钱,它会赚多少钱? 定义支持这些旧版本的预算,然后决定适合的测试和支持策略。

关于javascript - 是否应该处理浏览器之间的兼容性问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45453374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com