在中國人過端午(美國時間 2012/06/22)的時候,jQuery 1.8 Beta 1 也跑出來跟大家湊熱鬧了。除了修改了大量的 bugs 之外,jQuery 1.8 看來也經過了一番改造變身呢!
jQuery 1.8 Beta 1 下載位置
正常版本:http://code.jquery.com/jquery-1.8b1.js
以下幾點是 1.8 Beta 1 版中初步列出來的新特性及功能:
1.模組化
在 1.8 版中,我們可以利用 grunt 來移除用不到的功能模組,藉以自訂一個專屬的 jQuery 版本。例如您的網站用不到 Ajax 的功能時,就能把 ajax 模組從 jQuery 中移除掉並達到縮小檔案的效果,最小可以到 21 KB 哩!目前可以移除的模組有 ajax、css、dimensions、effects 及 offset 等。
如果想要知道怎樣移除自訂的話,可以參閱:README file
2.支援瀏覽器的 CSS 前綴
在 W3C 未將一些屬性標準化時,很多瀏覽器都會用自己的方式來實現效果,並會在屬性名稱前面加上自己專屬的前綴名稱,像是 -webkit- 或 -moz- 等等。現在使用 1.8 版時,我們不用特別針對不同瀏覽器來加上前綴名稱了,它會自動幫我們補上。例如當我們在 Chrome 中使用:
1 | $("#myscroll").css("marquee-direction", "backwards"); |
套用後會自動轉換成
1 | -webkit-marquee-direction: backwards |
3.改寫動畫模組
主要是整理並加入一些新的擴充特性,以利能更方便簡單的控制動畫效果。目前只有針對新的特性整理出一個初步文件,在 beta 版中要先確保的是現有的動畫功能都能正常為主。
現在主流的瀏覽器都能利用 CSS3 的 Transition 來做到很多常見的動畫效果了,當然這些瀏覽器是不包含 IE10 以下的使用者。所以在 jQuery 1.8 中提供了 $.Animation 來提供舊有的瀏覽器更穩定的動畫效果並修正了一些原有的錯誤。如果您網站是已主流瀏覽器原生的 Transition 效果為主時,那麼您甚至可以把 effects 模組移除掉。
4.改寫 Sizzle 選擇器
改寫了 Sizzle 使其能針對更多的選擇器(~ > +)有更好的處理及大量錯誤的修正(主要修正的是在 CHANGE LOG 中針對 Selector 列出來的 12 個問題)。
5.跨網站攻擊程式(XSS)保護
為了避免有心人士利用 $() 能產生 HTML 元素及執行 script 的特性,在 1.8 中新增了可以產生 HTML 元素的 $.parseHTML() 方法,並強烈建議像是利用外部資料來產生新元素時改用這個新方法。而 $() 在產生新元素的判斷也會越來越嚴格,像是小於符號(<)開頭的內容會被當成一般的 HTML 內容;其餘的會被當成 CSS 內容。
而 $() 在 jQuery 1.9 中將不再接受包含某些 HTML 字串的內容來產生任何元素。
除了以上新的特性之外,官方也通知了有幾個不建議使用或是將被移除的功能
$.browser 將在 jQuery 1.9 中完全被移除。建議可以試試 Modernizr 來針對瀏覽器做特性檢查或是等 1.9 的相容性外掛。
$.sub 也因為還不是很必要,因此也會在 1.9 時被移到相容性外掛中。
全域的 Ajax 事件因為可以隨意綁定在任何元素上而造成效能不彰,因此在 1.9 中也將被限制只能綁定在 document 上。
目前列出來的 JQUERY 1.8 BETA 1 CHANGE LOG 中是針對了 16 大項 85 個錯誤來做修正。但也因為還在 beta 而已,所以等到正式釋出時又有變化也不一定。但至少有些改變的方向是確定的,所以趁現在能避開的就先修正吧。
如果各位願意協助測試的話,就把正常未壓縮的 1.8 Beta 1 版本加入到你現在正在開發或使用的專案中,如果你在使用上發現有錯誤或是詭異的問題時,請馬上登入到 Bug Tracker 回報問題,並註明是在 1.8 Beta 1 中發生的。
通告: jQuery 1.8 發佈 ‹ WP 教學網