jQuery開發團隊今天發布了1.8的首個測試版本。
該版本引入了大量的新特性,包括:
1. 模塊化 在jQuery 1.8中,您可以移除一些不需要的模塊,以構建一個專屬的jQuery版本。通過基於grunt的新構建系統,你可以輕松實現該功能。可以移除的模塊包括ajax、css、dimensions、effects和offset。更多信息可參閱README file。
2. 根據浏覽器為CSS屬性加前綴 某些CSS屬性前帶有供應商前綴,這表明該屬性還未納入W3C標准。在jQuery 1.8中,可以采用無前綴的屬性名,並自動生成適合當前浏覽器的前綴。例如,在Chrome中,jQuery調用$("#myscroll").css("marquee-direction", "backwards")將設置為“-webkit-marquee-direction: backwards”。
3. 動畫 在jQuery 1.8中,你可以更容易地添加或修改動畫。新的“$.Animation”提供了堅實的基礎,並修復了之前版本中的許多bug,以便你的動畫能夠支持老版浏覽器。如果你的Web應用只針對現代浏覽器,你可以完全移除animation模塊。
4. CSS選擇器引擎Sizzle jQuery 1.8中重寫了選擇器引擎,大大提升了性能。此外,選擇器引擎Sizzle修復了一些邊緣問題和bug,包括對於多個選擇符(~ > +)的改進、更好地檢測浏覽器bug等。
5. XSS防護 $()方法可以創建HTML元素,如果被用來傳遞一個<script>標簽,則可以運行腳本。開發者有時會忘記這一點,將不受信任的源或用戶輸入的字符串傳遞到jQuery,就可能導致腳本注入,使攻擊者可以竊取cookies或破壞頁面。
jQuery 1.8引入了一個新的方法“$.parseHTML”。它可以讓你指定HTML字符串,它們會被作為HTML解析,$()將作為選擇器來解析字符串。“$.parseHTML”也提供了一種方式將HTML解析為DOM片段,並控制可能包含的任何腳本的執行。這對於由Content Security Policy (CSP)控制的JavaScript環境來說特別重要,因為注入的腳本可能導致安全警告或異常。
在1.9中,一些HTML字符串將不再會被$()識別。
6. 不建議使用或將移除的功能
- $.browser:通過user agent字符串來檢測浏覽器不是一個好主意,在1.9中將完全移除該方法,不過你可以使用兼容插件。或者你可以試試Modernizr。
- $.sub:該方法是在jQuery 1.5中引入的,但是被證明不是很有用,將被移到jQuery 1.9兼容性插件中。
- 全局AJAX事件:一些事件(如ajaxStart)可以被附加到不在一個文檔中的任何元素中,這將導致效率低下。在1.9中,Ajax事件將只能附加到文檔中。
詳細信息:JQUERY 1.8 BETA 1
下載地址:http://code.jquery.com/jquery-1.8b1.js