jQuery 对向后兼容性的支持如何?

Posted

技术标签:

【中文标题】jQuery 对向后兼容性的支持如何?【英文标题】:How well does jQuery support backward compatibility? 【发布时间】:2010-09-21 20:09:02 【问题描述】:

我们遇到了 Mootools 无法向后兼容的问题,特别是在拖放功能方面。我想知道是否有人对 jQuery 不向后兼容有任何类似的问题。我们开始大量使用它,并正在考虑升级到更新版本以开始使用几个需要它的插件。如果我们摆脱旧版本,我们会有什么问题吗?

【问题讨论】:

mootools 不向后兼容的任何示例? @scnliffe 我的一位同事遇到了拖放功能问题 环顾四周,很多更大的插件需要 jQuery 1.4.x,它真的很老了。 【参考方案1】:

jQuery 似乎很好地向后兼容。我已经通过几个版本的核心使用它超过几年了,并且在升级时没有遇到问题,除了一些带有一些插件的小问题。我会说核心似乎很好,但如果你使用很多插件,你可能会遇到一些问题(但这些通常很容易修复,或者新核心无论如何都内置了该功能,所以你可以放弃他们)。

【讨论】:

【参考方案2】:

jQuery 非常重视向后兼容性,以至于他们为每个版本都生成了一个“向后兼容性”插件:http://docs.jquery.com/Release:jQuery_1.2#jQuery_1.1_Compatibility_Plugin。它可以让不需要向后兼容性的人节省页面重量。

【讨论】:

【参考方案3】:

我的经验是,在升级时,我有时会发现以前可以工作的东西坏了。例如,当从 1.7.2 升级到 1.8.3 时,我发现一些拖放功能停止工作。一些问题可能是由于不推荐使用的 jQuery 函数被删除,jQuery UI 的不兼容版本仍在使用。

这是quote from another user:

向后兼容可能不是 jQuery 团队的强项,但 与大多数事情一样,这是一项正在进行的工作。我不是故意的 贬低他们所做的伟大工作,但它指出了一个事实,你 必须总是用新版本的 jQuery 测试你的脚本。

【讨论】:

【参考方案4】:

jQuery 从 1.0 版开始就产生了向后兼容的插件。

多年来,Web 开发发生了很大变化,jQuery 也随之发生了变化。在这段时间里,团队一直试图在保持与过去代码的兼容性与支持当前最佳 Web 开发实践之间取得平衡。

该项目具有以下向后兼容性回购:

jquery-compat-1.0(Compatibility plugin for those upgrading to jQuery 1.1+ from jQuery 1.0)

jquery-compat-1.1(Compatibility plugin for those upgrading to jQuery 1.2+ from jQuery 1.1)

jquery-xpath(Implement XPath functionality for those upgrading to jQuery 1.2 from jQuery 1.1)

jquery-compat-1.3(Backwards compatibility plugin for jQuery 1.3 (to be used with jQuery 1.4))

jquery-migrate-1.x-stable(Migrate older jQuery code to jQuery 1.9+)

jquery-migrate(Migrate older jQuery code to jQuery 3.0+)

参考文献

jQuery Blog

jQuery Wiki: Won't Fix

jQuery Core Upgrade Guides

jQuery Migrate Plugin - Warning Messages (2.0)

jQuery Migrate Plugin - Warning Messages (3.0)

jqLint

【讨论】:

【参考方案5】:

根据我的经验,jQuery 1.x 在 1.9 版之前一直非常向后兼容。

从 jQuery 1.9.0 开始,jQuery 1.x 行发生了重大变化。如果您从 1.9 之前的 jQuery 版本升级或需要使用尚未更新的插件,我们强烈建议您也使用 jQuery Migrate 插件。阅读jQuery 1.9 Upgrade Guide 和jQuery 1.9 release blog post 了解更多信息。

在您确定这对您来说不是问题之前,不要升级到 2.0:

jQuery 2.x 具有与 jQuery 1.x 相同的 API,但 不支持 Internet Explorer 6、7 或 8。

【讨论】:

以上是关于jQuery 对向后兼容性的支持如何?的主要内容,如果未能解决你的问题,请参考以下文章

Android上有不兼容的类吗?

向后iOS兼容性 - Swift 2

如何解决 ruby​​ on rails 版本差异(向后/向前兼容性)

为新指令集扩展优化编译的代码的向后兼容性

Apple iOS 是不是支持向后兼容?

使用更新的 CPU 指令支持构建向后兼容的二进制文件