《jQuery基礎教程(第3版)》譯者序

李鬆峰發表於2012-02-22

在眾多JavaScript框架(或JavaScript庫)中,jQuery一枝獨秀早已是不爭的事實。在Google Trends中搜一下“jquery, prototype,dojo,yui,underscore”,你就會看到什麼叫遙遙領先。為什麼會這樣呢?

jQuery是2006年1月14日誕生的,它的“父親”是一位年輕帥氣的80後小夥子,名叫John Resig。Resig在剛寫出jQuery的時候,Dojo和Prototype等JavaScript庫已經比較有名了。當時,“Ajax”這個新詞兒剛剛發明不到1年,由Jesse James Garrett那篇名垂青史的文章(“Ajax: A New Approach to Web Applications”)引發的全球學習JavaScript的熱潮還在持續升溫。在這個大背景下,JavaScript框架如雨後春筍般紛紛破土而出。

為了快速開發時髦的Ajax應用,不少前端開發人員在日常工作中就選用Dojo、Prototype及Scriptaculous這樣的JavaScript功能及效果庫。這些庫的主要特點是包裝和擴充套件JavaScript核心及BOM和DOM已有的功能,為開發人員提供大量便捷的實用函式。從根本上說,這些庫大都以功能為中心,而且處處迎合傳統物件導向程式設計師的開發習慣。jQuery不然,它借鑑了很多指令碼語言的動態特性,集多項創新於一身,開創了全新的程式設計風格。

儘管並不是第一個JavaScript框架,但jQuery後來居上;剛一發布,就“引無數英雄競折腰”。很多其他框架的擁躉迅速迷上了jQuery,“棄暗投明”。用後來成為jQuery核心團隊成員的Yehuda Katz 的話說:“(看到jQuery的)第一眼我就喜歡上了這個框架。我想,這不就是我夢寐以求的程式設計方式嗎!”

Katz所說的“夢寐以求的程式設計方式”,指的就是“以DOM元素為核心,一點一點地給它們新增新功能”(by centering on DOM Elements and tacking bits of functionality on top of them, jQuery made JavaScript fun again,http://visualjquery.com/magazine/issue1.pdf)。用今天jQuery開發人員的話說,jQuery的特色就是“面向集合和方法連綴”。閉上眼睛想一想,jQuery利用CSS選擇符建立jQuery物件,為這些物件提供豐富的方法,批量操作其中的DOM元素,而且讓所有方法儘可能再返回這個物件以實現方法連綴呼叫,這些絕妙的創意組合在一起,無異於重新發明了JavaScript(就像CoffeeScript和Sass現在所做的一樣)。難怪Katz說完剛才那句話,緊接著又補充道:“jQuery讓寫JavaScript程式碼變得妙趣橫生!”

即便是6年後的今天,jQuery簡潔、靈活的程式設計風格所具有的表達能力照樣讓人一見傾心。在前仆後繼、強手如林的JavaScript框架社群中,jQuery依然是當之無愧的翹楚。今天,一名精通JavaScript的前端攻城師,很可能也是一位jQuery高手;一個JavaScript驅動的富Web應用,很可能完全是用jQuery程式碼寫就的。簡言之,學JavaScript,不能不學jQuery。

回到書的話題上。從2007年開始,介紹jQuery的書漸漸地多起來。人民郵電出版社圖靈公司慧眼獨具,率先在國內引進了本書(Learning jQuery)第1版,而我也有幸成為國內第一本jQuery中文圖書的譯者。不久後上市的《jQuery基礎教程(第1版)》深受JavaScript及jQuery學習者歡迎。2009年11月,與時俱進的《jQuery基礎教程(第2版)》問世,jQuery之父John Resig專門為之作序。時光荏苒,幾度春秋。如今,本書第3版又要跟讀者見面了。回想起幾年來本書一版再版,長銷不衰,心中不禁產生一種莫名的自豪感。根據已有的數字,應該說至少已經有近兩萬名讀者通過這本書邁入了jQuery開發的殿堂。(當然,這個數字並未包含網路上廣為流傳的“掃描版”;對於“掃描版”,我絕不支援,只希望有能力購買正版的朋友不要在知識面前吝嗇。)

jQuery贏在理念,本書同樣不落俗套。鑑於jQuery已經成為最流行的JavaScript庫,開發者隊伍日益龐大、開發層次越來越高,在這個新版本中,作者重新規劃了全書內容。全書總體上分為入門與提高兩個部分,共包含13章3個附錄。前8章是“從入門到精通”的基礎部分,在上一版基礎上做了很多增刪改的工作,涵蓋了選擇元素、處理事件、樣式動畫、操作DOM、傳送資料(Ajax),以及使用和開發外掛。第9章至第13章是高階部分,每一章的章名均冠以“高階”二字:高階選擇符和遍歷、高階事件、高階效果、高階DOM操作和高階Ajax。不言而喻,這幾章是前半部分內容的延伸和擴充,包括了各種高階應用和複雜技巧,比如優化遍歷效能、使用事件委託、自定義動畫效果、本地化資料和HTML5等。

另外,需要向讀者說明的是,在翻譯本書這一版的過程中,jQuery 1.7於2011年11月3日釋出了。事實上,這個時間距jQuery 1.6.4的釋出還不到兩個月。雖然本書這一版的英文版基於jQuery 1.6.x,但jQuery 1.7相對於1.6.x的變化不大,而且完全向後相容,所以本書內容同樣適合jQuery 1.7,所有程式碼示例均可以1.7下正常執行。為了滿足廣大讀者對jQuery 1.7的好奇心,同時也為了彌補圖書出版滯後於庫版本更新速度的缺憾,譯者在徵得英文版出版方同意的情況下,新增了附錄D,簡要介紹了jQuery 1.7的主要新特性和新API。

最後,感謝本書編輯丁曉昀,她認真負責的工作讓本書得以完整無缺地呈現在讀者面前(當然,如果再有缺失也全都是我一人的疏漏),也多虧了她的督促,才讓這篇譯者序得以寫成。丁曉昀也是我即將出版的另一本譯著《深入HTML5應用開發》的編輯,藉此機會一併感謝。

最應該感謝的,還是我的妻子宋慧敏和兒子李嘉浩。妻子為家庭做出了難以想象的犧牲,分擔了大部分責任,如果沒有她的寬容和理解,我不可能每天沉浸在翻譯的世界裡。兒子則是我們倆最大的驕傲,除了時不時帶給我們意外的驚喜,本書中有幾句話也是他翻譯錄入的。

2012年2月

相關文章