何时更新jQuery?


19

当您建议更新jQuery / jQuery UI时?换句话说:更新jQuery / jQuery UI的最佳实践是什么?

我正在进行一个长期的项目,至少需要一年。在那段时间内,我确定jQuery / jQuery UI将被多次更新。

您是否建议每次发布更新时都更新我的jQuery / jQuery UI文件?还是坚持使用特定版本直到项目结束?

我担心“破坏”代码更改,并且每次发布更新时,我都必须测试所有内容。这需要太多时间。但是,另一方面,如果我不进行更新,则我担心以后会被我咬伤的错误。

该项目是一个ASP.MVC,我经常使用jQuery。

有什么想法吗?


本文可能是相关的:链接到Google托管的版本,它始终要求始终处于领先地位
Alex

Answers:


19

仅当您需要新版本中包含的一些新功能时,才更新jQuery版本。就那么简单。

如果您经常使用jQuery进行开发,请关注官方博客以了解何时发布更新以及它们提供了什么。请等待几周左右,然后再升级到最新版本,以确保消除所有意外的错误。


1
+1是最稳定的方法,在最终遇到bug时,为了升级而进行升级会增加您的总体开发时间。
尼古拉斯·史密斯

2
另外,请注意您的插件。有时,插件的错误修复需要升级核心jQuery代码。
Adrian J. Moreno

12
我不同意这个答案。如果产品仍在开发中(听起来像是从问题中得出的那样),则请使用每个新的jQuery版本进行升级。如果产品已经投入生产,那么我同意这个答案,仅在需要升级(错误修复,新功能等)时才进行升级
Chuck Conway

@ChuckConway:说得好。
Jim G.

20

您应该使用每个jQuery版本进行升级-只需先查看一下更新日志,再进行更新即可。

jQuery团队非常擅长记录API更改和不建议使用的调用。在这一点上,绝大多数的API是相当稳定的,可能不会改变。大多数更改都是后台错误修复,不会影响向外的API。对于最新版本(1.8+)尤其如此。

进行更新的另一个重要原因是,无论您是否保留在项目上,该项目完成后都将由他人维护。升级到最新版本对您,未来的开发人员和用户都是有益的-因为jQuery的较新版本让旧版本无所适从...所以继续进行更新。


4
这应该是公认的答案,它仅表示当您最终想要升级时,您必须进行较大的版本跳转,这要困难得多。
丹尼尔·利特尔

5

尽快升级而不会破坏任何内容。新功能,错误修复,新功能会在每次迭代中引入。

您可能不需要最新功能,但是当您这样做时,则需要在两次更新之间验证每个新版本,以确保它不会破坏任何内容。

少量增加即可使您保持最新状态,而不必升级5个主要版本并花费5个小时一次测试所有内容。


1
我仍在尝试确定从1.4.x更新到1.7.x是否会破坏任何内容。
styfle

4

您是否需要新版本的JQuery中包含的任何新功能?您的网站今天能按预期工作吗?

如果您对第一个问题回答“否”,对第二个问题回答“是”,则不要升级jQuery。

如果确实需要新功能,则必须在增加测试成本和可能引入新问题的成本之间取得平衡。

如果您当前的JQuery版本有问题,那么较新的版本可能已解决了您的问题,但是您仍然要承担更多的测试负担,因为您必须确保新版本不会破坏其他任何东西。

这就是为什么拥有一套好的单元测试,功能测试和功能测试如此重要的原因。


2

只有您可以决定风险是否值得。就个人而言,我喜欢保持最新状态。但是,我在升级时引入了一些错误,这些错误破坏了某些东西(或导致了奇怪的行为)。由于您的发展还有一年的时间,因此无论如何都要经过最终的质量保证。

我说保持最新。进行连续的小型集成比一次大型集成要容易得多。


0

测试。测试,测试,测试,测试,测试。

我在项目上使用了jQuery UI版本(当时为最新版本),并使用了一个名为.autocomplete的外部插件,该插件具有预输入功能,可将文本字段绑定到JSON数据源。用了很多地方。

然后,几个月后,我需要添加一个仅在最新版本中提供的滑块控件。不幸的是,该最新版本添加了本机自动完成功能,他们声称这是我使用的插件的继任者,但是使用了完全不同的方法,功能和数据要求,破坏了我使用的每个页面上的自动完成字段我的新滑块打开。

因为我开发此新功能的页面没有使用自动完成功能,所以我没有注意到。因为我的客户急于在贸易展览会之前安装此功能,所以它匆忙进行了阶段性和测试,并带着破损的自动完成功能进入了生产。

最终,这是我的测试失败。从中吸取的教训是,jQuery和jQuery UI 对向后兼容性几乎没有兴趣。作为开发人员,这就要求我们进行测试,测试和测试。


-1

以我的经验,新版jQuery在有关调用代码(您的代码)的代码清洁度要求方面通常更为严格。

已淘汰了许多项目(http://api.jquery.com/category/deprecated/)。不幸的是,页面上没有弃用的自标记。较旧的折旧可能会破坏某些内容。

最值得注意的是(对我而言),不赞成使用:checkbox选择器和toggle()函数。前一段时间,此更改影响了我自己的(最早的)jQuery代码。我有一段时间没有意识到这一点。

另一方面,较新的jQuery版本通常会大幅提高性能。查看变更日志,或者查看John Resig的演示文稿之一,以了解实现性能改进的地方。如果您可以从中获得任何收益,则由您决定。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.