jQuery 1.9/2.0關鍵升級解析
2012年8月9日,jQuery基金會推出了jQuery 1.8。隨著新式瀏覽器和javascript引擎的興起,大型ajax應用加速普及,重寫Sizzle元素選擇器的舉動標誌著優化革命的開始。僅僅四個月後,在2013年1月15日,jQuery 1.9釋出,退役了一批違反程式碼衛生原則的函式介面,進一步優化速度。自1.8開始,jQuery大大縮短了產品週期,還在用1.4.2的朋友們得抓緊趕上啊!
對已有程式碼影響最大的恐怕是.live()的去世。其實,如果大家關注了jQuery官方部落格,.live()早在1.7版釋出時就被貼上了去除標籤。不幸的是,龐大的現有jQuery資源中有太多程式碼都在呼叫.live(),官方微弱的聲音立馬被廣大的拿來主義使用者所忽略。.live()將動態事件處理函式掛載在文件根元素上,事件被傳遞至事件樹的頂端才被執行,顯然會負面影響程式碼的執行效率。所有處理函式都掛在根元素上也不利於函式管理。替代.live()的.on()可以將動態處理函式掛載在任意元素上,元素一旦被移除,此處理函式將會自動被解除安裝。.on()也替代了.bind()和.delegate(),成為了事件處理的統一工具。按照官方的規劃,未來我們僅需要簡短、強大的.on()。相對應的.off()也同時替代了.die()、.unbind()、.undelegate()。on/off通俗易懂,何樂而不為呢?
另一個大家不情願的變化是$.browser的移除,2012年10月2日釋出的jQuery Mobile 1.2甚至都對瀏覽器嗅探有所依賴。$.browser在清洗名單中呆了整整四年,本次移除受到了強大的社群阻力。包括jQuery的創始人Rezig,不少javascript程式碼衛生倡議者都建議大家進行HTML5功能檢測,以代替瀏覽器嗅探。在HTML中加入條件載入語句
<!--[if lt IE 8]><script src='json2.js'></script><![endif]-->
也不如HTML5功能檢測嚴謹。我在極光賬本的首頁開發中就應用了HTML5功能檢測,提示不支援原生JSON或localStorage的瀏覽器使用者升級瀏覽器。原生的IE8是完全支援JSON模組的,但之前版本沒有支援。假如我使用瀏覽器嗅探提示IE6/7的使用者升級瀏覽器,擁有IE8核心但不支援JSON的搜狗瀏覽器就不會得到提示。您也許不像我那麼憤青,所以我建議您在javascript中為沒有JSON的瀏覽器載入json2.js:
if (!window.JSON) {
$.getScript('json2.js');
}
以相容所有瀏覽器。
萬眾矚目的jQuery 2.0與1.9版的外部介面完全一致,其革命性意義在於去除了IE8及以下IE核心的支援。與Windows 7共同誕生的IE8還未上小學,就已經成為了jQuery的社群公敵。對極光賬本這類記賬網站而言,由於沒有原生canvas支援,IE8的圖表繪製效能令人難以接受。從jQuery 2.0版的開發日程看,它與jQuery Mobile 1.3可能會同時釋出,因為微軟在移動平臺上終於跟上了大部隊的腳步,所有主流智慧手機平臺都支援基本的HTML5。同時,node.js等伺服器端javascript框架無需擔憂瀏覽器相容問題,去除了老IE相容程式碼的jQuery 2.0能優化伺服器指令碼程式。若一切順利,2.0版立馬將在手機瀏覽器和伺服器上大有作為。
jQuery 1.9升級至少是一次清理程式碼的好機會,將所有老語句替換成官方推薦的穩定語句。溫故而知新,還能糾正以前的不良程式碼習慣。不需要支援老舊瀏覽器的朋友更有福了,jQuery 2.0不僅體積更小,而且將成為史上最快的jQuery發行版。
相關文章
- jQuery1.9及2.0問答集錦jQuery
- Truffle 2.0升級3.0升級指南
- jQuery 1.9和2.0版路線圖問答集錦jQuery
- ITPUB 2.0改版升級
- jQuery UI 1.9介紹jQueryUI
- Apache RocketMQ ACL 2.0 全新升級ApacheMQ
- jQuery升級踩的那些坑jQuery
- 百度流量與關鍵詞工具重大升級:推“關鍵詞影響力”
- Flutter1.9升級體驗總結(幫大家填坑了)Flutter
- jQuery 1.9 正式版釋出了jQuery
- 解析雲原生2.0架構設計的8大關鍵趨勢架構
- 1.9 - Laravel - 5.6 - tag 解析機制Laravel
- Freadhub終於升級Flutter2.0了Flutter
- NPOI 2.0 – Excel讀寫神器再次升級薦Excel
- iLogtail 2.0 重大升級,端上支援 SPLAI
- Markcook2.0,使用Vue2.0和Vuex2.0進行完全重構升級Vue
- volatile關鍵字解析
- 百度分享程式碼已升級到2.0
- 開源| 直播推拉流2.0升級了什麼
- vue 自定義指令外掛升級 2.0 的坑Vue
- macaca(四)macaca 2.0 升級篇Mac
- jquery搜尋關鍵詞高亮效果jQuery
- jquery 新增關鍵字小外掛jQuery
- 智慧質檢升級換代:為什麼“關鍵詞”不夠用了?
- final關鍵字深入解析
- volidate關鍵字解析
- 深入解析volatile關鍵字
- Java volatile關鍵字解析Java
- python 關鍵字yield解析Python
- 企鵝社群移動版Vue2.0升級手記Vue
- Vue音樂播放器2.0升級版來了Vue播放器
- 虛擬現實產業鏈升級,搶灘內容成致勝關鍵產業
- 部落格園主題——atum2.0升級釋出啦
- 關閉chrome自動升級的教程 chrome如何取消自動升級Chrome
- 微軟正式宣佈Win 11升級時間,仍缺少一個最關鍵功能微軟
- 關於aix的系統升級AI
- 區塊鏈關鍵字的解析區塊鏈
- Java併發——關鍵字synchronized解析Javasynchronized