不知不觉,jQuery离初次发布已经过去了将近八年。经年之间,Web开发的面貌已经焕然一新,jQuery的变迁也与时俱进。jQuery团队无时无刻不是沿着维护旧有代码的兼容性及支持Web开发当下的最佳实践之间的道路一往无前。

语义版本控制(semantic versioning,或简称semver)就是这些最佳实践之一。它让开发人员(以及构建工具)建立起一种观念,即在移至软件的新版本时存在风险。版本号形如主版本号.次版本号.补丁版本号,其中三个组成部分都是整数。在semver中,如果主版本号部分发生了变化,就意味着API部分有着破坏性的变化,所以开发人员需要提高警惕。

版本控制这个概念在jQuery中变得更细化了一些,因为浏览器兼容性和API兼容性几乎是同等重要的。为了让jQuery变得瘦身一些,团队在2013年交付了两个版本。第一个版本保持着1.x的编号,它目前发展到了1.11.1,目的在于维护与最大多数浏览器的兼容性。第二个版本,从2.0.0起步,目前发展到了2.1.1,则放弃了对于诸如IE8以下版本这样的浏览器的支持,目的在于精简代码。1.x和2.x版本的jQuery有着相同的公开API,尽管它们的内部实现有着些许不同之处。

我们的下一个发布版本将采用全新的命名法。同此前一样,会有两组不同的发布文件。现在的1.11.1版本的继任者将称为jQuery Compat 3.0,而jQuery 2.1.1则由jQuery 3.0接棒。在npm和Bower上,它们会是两个不同的包,但它们会共享同一个版本号,来说明它们在API层面上的行为是一致的。

从这批发布开始,我们也将调整对浏览器的支持策略。主jQuery包将维持其短小精悍的特点,并且只支持在发布之时使用广泛的常青浏览器(evergreen browsers,意为特定浏览器的当前和此前的若干版本)。我们会根据市占情况,为更多浏览器提供支持。而jQuery Compat包则为范围更加广泛的浏览器提供支持,但代价就是文件体积将会更大一些,执行效率也会受到一些潜在影响。

尽管这是一次大版本跃迁,但我们认为对于大多数jQuery代码来说,并不会发生很大的迁移问题。我们在这次版本升级时,可是很符合semver的好公民标准的。诸如移除已弃用方法这样的变化,会被jQuery Migration插件的新版本检测出来,这么一来查找和修复工作都很简单了。在今后的博客文章中,我们会讨论这些变化的更多细节。

好啦,下面就是jQuery 3.0版本的提要:

  • 如果您需要支持最大多数的浏览器,包括IE8、Opera 12、Safari 5等等,那就请使用jQuery-Compat 3.0.0包。我们建议大多数网站都应该使用这一版本,因为它为网站来访者提供了最好的兼容性。
  • 如果你的网站只为最先进的常青浏览器而建,或只是作为一个基于HTML的应用以嵌入一个Web视图(比如PhoneGap或Cordova),你预先知道使用Web页面的是哪些浏览器引擎,那就用jQuery 3.0.0包吧。
  • 除非我们另有声明,对应的主、次版本号相同的两个包都会包含相同的公开API。这样开发者就能够很容易地在两个包之间切换,同时在第三方的jQuery插件那里拥有最大的兼容性。

未来发布时,我们都会把它们同时放到npm和Bower上。两个包在jQuery CDN上都会以单个文件的形式提供出来。在那里使用它们,和根据你自己的需要包含 jquery-compat-3.0.0.js或jquery-3.0.0.js一样简便。我们也和Google CDN的运营人员商谈过,他们也会为这两个包的分发提供支持。

随着我们在3.0版本方面工作的推进,我们会向所有人告知代码变更、浏览器支持等一切细节的更新。敬请期待!

via:http://new.w3ctech.com/topic/603