不知不觉,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版本的提要:
未来发布时,我们都会把它们同时放到npm和Bower上。两个包在jQuery CDN上都会以单个文件的形式提供出来。在那里使用它们,和根据你自己的需要包含 jquery-compat-3.0.0.js或jquery-3.0.0.js一样简便。我们也和Google CDN的运营人员商谈过,他们也会为这两个包的分发提供支持。
随着我们在3.0版本方面工作的推进,我们会向所有人告知代码变更、浏览器支持等一切细节的更新。敬请期待!
via: