我注意到有时人们必须在同一页面中使用多个版本的jQuery(请参阅question 1和question 2)。我假设人们必须携带旧版本的jQuery,因为它们的一些代码基于旧版本的jQuery。显然,这种方法会导致效率低下。理想的解决方案是重构旧代码以使用更新的jQuery API。我想知道是否有工具可以自动升级一段代码以使用更新版本的jQuery。我从来没有用Javascript或jQuery编写程序。所以,我想听听有这些语言经验的程序员关于他们对这个问题的看法。特别是,我想知道以下内容。
请不要将此问题视为已关闭。目前的回复已经让我对可用于升级jQuery代码的过程和工具有了很好的了解。但是,请随意添加自己的升级jQuery代码的经验。
答案 0 :(得分:3)
你的问题都很重要。但是根据我的个人经验,除了第一个版本中的一些问题,这些问题在迁移到后来的版本之后发生。几乎你不应该遇到任何问题,除非你写的代码有问题而不是jquery。
我没有看到任何合适的js开发人员同时使用两个不同的版本。
JQuery现在本身为名为qunit的单元测试提供了一个非常好的api。如果你开始实现测试功能,你应该确保你的代码无缝地工作。
我将QUnit用于繁重的项目。这可能需要很多ajax请求等等。当然,将它用于几个动画等并不值得。
我希望这些信息有用
答案 1 :(得分:2)
忽略您可以使用JQuery执行此操作的事实,使用任何API的2个版本是不寻常且容易出错的。这是一种罕见的做法,但至少使用JQuery,它已经完成了。
如果我正在评估新项目的供应商组件,并且需要更旧的库,那么在投资该组件之前我会三思而后行。提供需要旧版本的工具的供应商是以下之一:
1)非常谨慎和稳定(好)
2)速度不快(不太好)
3)资源不足(差)
4)没有动力更新他们的工具,因为没有足够的人要求该工具(非常糟糕)
当然(5)可能是他们的工具非常好而且他们拥有如此庞大的客户群,他们觉得不需要更新它。这是好的,最终会回到其他问题之一。
我使用足够多的第三方工具来了解有时候,一个工具做得很好,无论如何我都会选择它,但总的来说,我希望有一个工具可以成为新项目的最新工具。有很多“夜间飞行”的供应商,他们只是没有维护他们的产品,在你要求支持或新功能之前,你找不到它。
答案 2 :(得分:0)
我有时会在同一页面上使用两个版本的jQuery,但原因不同。这是在页面上作为第三方窗口小部件运行的代码;在这种情况下,您不能指望存在的任何库的特定版本。
如果你需要在这样的代码中使用jQuery这样的库,最安全的是加载你的版本并执行诸如myNamespace.jQ = jQuery.noConflict(true)
之类的操作,这样你就可以拥有一个你可以依赖的命名空间的单独版本,并且它是分离的从页面的其余部分。
这样,如果该页面更改了代码,您的第三方代码就不会受到影响。在这种情况下,通过消除其他人代码中对库版本的可能依赖性,我认为使用多个jQuery版本实际上促进了重构。