我们是一个由开发人员构建javascript应用程序的小团队。
如果我们不使用jQuery,我们需要花费大量时间确保代码与浏览器兼容,并且我们将在我们支持的所有平台上运行单元测试。这非常耗时,并且会增加我们的工作流程,或者需要时间来设置。
但是,我们确实使用jQuery。我们是否真的需要进行所有跨浏览器测试?
如果我们已经使用了jQuery - 一个基本上消除了跨浏览器问题的库,我正在寻找支持和反对进行广泛的跨浏览器测试(即使用TestSwarm或类似的东西)的一些论据。
思想?
答案 0 :(得分:2)
jQuery在所有主流浏览器上运行,但它总是取决于实现,任何事情都可能出错,所以在浏览器中测试它总是一个好习惯。
这样做会更安全。 99%的代码都能正常工作,但1%的代码仍然存在风险,1%的代码可能会出现严重错误。
答案 1 :(得分:1)
但是,我们确实使用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也存在错误
因为可能会有一些较新的JS API,您的团队成员可能会认为它们不稳定。一个例子是querySelectorAll
,它已经很好地运行了,在许多浏览器中都得到了支持,但是有怪癖which are different from what you'd expect。
仅仅因为你使用了一个很棒的CSS框架并不意味着所有的布局问题都已经解决了。您甚至还在进行UI测试,以确保所有内容看起来都一样。 所有语言都应该采用相同的逻辑,即使是JS。
答案 2 :(得分:0)
您的测试范围有多广,完全取决于您的应用。这有点像“一根绳子多久了?”的问题。
我会说,特别是jQuery,我在IE 8及更早版本中遇到了错误,这通常是由于HTML无效,而在其他浏览器中没有出现过。
而且,正如@ kinakuta的评论指出的那样,jQuery并未涵盖所有浏览器JavaScript API,或者替换语言本身。我想你在你的应用程序中编写的每一个重要的JavaScript行都不太可能是jQuery。