【问题标题】:Should I do cross-browser testing if I am using jQuery? [closed]如果我使用 jQuery,我应该进行跨浏览器测试吗? [关闭]
【发布时间】:2013-06-19 09:44:07
【问题描述】:

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

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

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

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

想法?

【问题讨论】:

  • jQuery 抽象出了很多跨浏览器的不一致,但仍然可以编写在不同浏览器上表现不同的 JavaScript。我仍然建议跨浏览器进行测试。自动化您的测试并养成编写单元测试的习惯。
  • 代码中的某些错误可能会在一个浏览器中被忽略,但在另一个浏览器中会出现。 jQuery 无法解决所有这些问题。

标签: javascript testing cross-browser


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    是的

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

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

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

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

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

      这个论点适用于为什么map() 是patched,而不是reduce()。 A bug report was created for this,但大多数响应者回答 reduce 内部不需要,因此被省略了。

    • jQuery和其他软件一样也有bug

    • 因为可能有一些较新的 JS API,您的团队成员可能会认为它们不是稳定的。一个例子是querySelectorAll,它已经很好地工作了,在许多浏览器中都支持,但有一些怪癖which are different from what you'd expect。

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

    【讨论】:

      【解决方案3】:

      您的测试范围完全取决于您的应用程序。这有点像“一根绳子有多长?”问题。

      我想说的是,特别是 jQuery,我在 IE 8 和更早版本中遇到了错误,通常是由于 HTML 无效,而这些错误在其他浏览器中没有呈现。

      而且,正如@kinakuta 的评论所指出的,jQuery 并没有涵盖所有浏览器的 JavaScript API,也没有取代语言本身。我想你在应用程序中编写的每一行重要的 JavaScript 都不太可能是 jQuery。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        • 1970-01-01
        • 2020-02-26
        • 1970-01-01
        相关资源
        最近更新 更多