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 对向后兼容性的支持如何?的主要内容,如果未能解决你的问题,请参考以下文章