2

我们是一个开发 javascript 应用程序的小型开发团队。

如果我们不使用 jQuery,我们会花很多时间确保代码是跨浏览器兼容的,并且我们会在我们支持的所有平台上运行单元测试。这很耗时,并且会增加我们的工作流程,或者需要时间来设置。

但是,我们确实使用 jQuery。我们真的还需要做所有的跨浏览器测试吗?

如果我们已经使用 jQuery——一个基本上消除了跨浏览器问题的库,我正在寻找一些支持和反对进行广泛的跨浏览器测试(即使用 TestSwarm 或类似的东西)的论据。

想法?

4

3 回答 3

2

jQuery 可以在所有主流浏览器上运行,但它始终取决于实现,并且任何事情都可能出错,因此跨浏览器测试它始终是一个好习惯。

这样做你会更安全。99% 的代码可以正常工作,但 1% 的代码仍然存在风险,这 1% 的代码可能会出现严重错误。

于 2013-06-22T09:24:27.133 回答
1

但是,我们确实使用 jQuery。我们真的还需要做所有的跨浏览器测试吗?

是的

我正在寻找一些支持和反对进行广泛跨浏览器测试的论据

  • 因为 jQuery 可能有一些你可能不知道的怪癖,除非你真的更新了它们的构建、错误和修复。

  • jQuery 可能没有修补所有差异。

    据我所知,旧版本存在这种差异,因为 IE 不支持在创建元素时更改输入的类型:

    //IE:
    $('<input type="text"/>');
    
    //Other browsers:
    $('<input/>',{
      type : 'text'
    });
    
  • jQuery 不会修补所有内容。

    这个论点对于为什么要打补丁map()是正确的,但不是。为此创建了一个错误报告,但大多数响应者回答说内部不需要,因此将其省略。reduce()reduce

  • jQuery 和其他软件一样,也有错误

  • 因为可能有一些较新的 JS API,您的团队成员可能会认为它们不是稳定的。一个例子是querySelectorAll它已经很好地工作了,在许多浏览器中都支持,但是有一些与你期望的不同的怪癖。

  • 仅仅因为你使用了一个优秀的 CSS 框架并不意味着所有的布局问题都已经解决了。您甚至还需要进行 UI 测试以确保一切看起来都一样。相同的逻辑应该适用于所有语言,甚至 JS。

于 2013-06-22T09:37:50.887 回答
0

How extensively you test depends entirely on your application. It’s a bit of a “How long is a piece of string?” question.

I would say that with jQuery specifically, I’ve encountered bugs in IE 8 and older, often due to invalid HTML, that haven’t presented in other browsers.

And, as @kinakuta’s comment pointed out, jQuery doesn’t cover every browser JavaScript API, or replace the language itself. I’d imagine it’s unlikely that every significant line of JavaScript you write in your application will be jQuery.

于 2013-06-22T09:43:08.760 回答