jQuery官方聲明:jQuery 3.0和jQuery Compat 3.0
jQuery 3.0 —— 下一代的 jQuery
jQuery發(fā)布已經(jīng)快八年了,挺讓人難以置信。過去的這些年Web開發(fā)變了很多,jQuery也隨之變化著。在這個過程中,團隊一直在對確保過往代碼的兼容支持和獲取***的Web開發(fā)實踐的現(xiàn)實之間努力著。
其中一個***的做法是語義版本,或簡單稱之semver。在實踐中,semver給了開發(fā)者(以及構(gòu)建工具)一個避免切換軟件版本風(fēng)險的一個辦法。版本號以MAJOR.MINOR.PATCH的形式,其三個組成部分均為整數(shù)。在semver中,如果MAJOR變化了,這表示API中有開發(fā)者更改需要注意的斷層變更。
在jQuery中版本控制的概念變得更加微妙,因為對jQuery來說瀏覽器的兼容性比API的兼容性更重要。為了創(chuàng)造一個瘦身的jQuery,團隊在2013放出了兩個版本。***個版本保持1.x的編號,目前1.11.1,其保持了***數(shù)量的瀏覽器兼容。第二個版,從2.0.0到現(xiàn)在的2.1.1,為精簡代碼去除了對IE8以及以下瀏覽器的支持。無論是jQuery的1.x和2.x版本都具有相同的公開API,然而它們的內(nèi)部實現(xiàn)是有所不同的。
我們的下個版本將使用不同的命名規(guī)則。正如之前,將有兩個不同的發(fā)布文件。1.11.1的繼承版本將成為jQuery Compat 3.0。jQuery 2.1.1的繼承版本將為jQuery 3.0。在npm和Bower上會有兩種不同的包,但它們通過共享相同的版本來表明它們具有相同的API的行為。
我們也會隨著這些發(fā)布政策來重新調(diào)整我們的瀏覽器支持。jQuery發(fā)布時的主包會依舊保持小巧簡潔來支持發(fā)布時的常規(guī)瀏覽器(特定瀏覽器的當前和以前版本)。依據(jù)市場份額,我們可能在這個包中支持額外的瀏覽器。jQuery兼容包提供了更廣泛的瀏覽器支持,但文件尺寸會大一些并會有潛在的低性能風(fēng)險。
除了大版本號的跳躍外,我們不會對目前jQuery代碼做太多轉(zhuǎn)變。我們想處理好版本的變更。一些變化諸如刪除過時的方法的將被一個新版本的jQuery遷移插件檢測到,這樣更容易發(fā)現(xiàn)和修復(fù)它們。我們將在未來的博客中列出更多的修改細節(jié)。
下面就是一些jQuery API 3.0版本要說的內(nèi)容:
- 如果你要兼容更廣泛的瀏覽器,包括IE8,Opera 12,Safari 5等,使用jQuery-Compat 3.0.0包。我們推薦大多數(shù)站點使用這個版本,因為它為最多的網(wǎng)站訪問者提供了***的兼容性。
- 如果你的網(wǎng)站是專為領(lǐng)先的瀏覽器搭建的,或者是一個webview(例如PhoneGap或Cordova)容器中的HTML應(yīng)用,并且你知道哪些瀏覽器引擎會使用它,那就使用jQuery 3.0.0包。
- 除非我們宣布,否則,在相同的主次版本中這兩個包將包含相似的公眾API。這樣開發(fā)者可以很容易在它們之間切換,并且會保持與第三方j(luò)Query插件***的兼容性。
當它們各自未來發(fā)布時,我們會確保這兩個包在npm和bower中都有。這兩個包也可仍舊會以單獨文件的形式存在于jQuery CDN。從那里使用它們很簡單,根據(jù)你的需要包含jquery-compat-3.0.0.js或jquery-3.0.0.js。我們與運維谷歌CDN的人談過交談,他們也會同時支持這兩個包。
我們對3.0版本的進一步發(fā)展,我們將更新代碼的變化,細節(jié)都支持的瀏覽器等。敬請期待!