本書適用于想深入學習jQuery的Web開發人員,jQuery是互聯網上流行的JavaScript框架。本書的目標是希望讀者成為Web高級開發人員,無論起點如何。本書深入介紹了整個jQuery框架,此外還專門深入講解插件編程,以及一些擴展開發工具和框架,比如Bower和QUnit,當然還有經典的開發實戰原則。每個API方法都使用了簡明扼要的語法塊描述參數和返回值。
本書涵蓋了從簡單入門(如何在網頁中引入jQuery)到高級開發,比如Promises的實現方式,以及如何開發jQuery插件。為了便于大家理解知識,本書包含了大量的例子代碼,三個插件,以及三個例子項目。本書也包含了動手實驗室網頁(Lab Pages.)。這些有趣的網頁讓大家可以在實戰開發中快速學習JQuery方法的差別,而不需要編寫大量的代碼。
閱讀本書需要大家提前掌握了HTML、CSS和JavaScript的基礎編程知識。jQuery以前的知識不是必須的,但是可以幫助大家快速理解掌握新的概念
適讀人群 :jQuery開發人員,Web開發人員
jQuery作為流行的JavaScript框架,其理念為Write less,Do more(少寫,多做),提倡編寫少量的代碼實現復雜的功能;它簡單、快速、輕量級,能提供豐富的功能接口。作為前端開發頭痛的瀏覽器兼容性問題,jQuery提供了很好的底層封裝,以適應不同瀏覽器版本的差異;對于Ajax、動畫、DOM操作、事件、Promise、閉包、擴展插件、測試等提供了豐富的支持。簡單易用,簡化了程序員底層兼容性開發的痛苦,適用于現代Web網站快速開發需求。學習Web網站開發,jQuery技術成為必備技能。全球排名前1000萬的網站有65%使用了jQuery,其重要性不言而喻。
《jQuery開發實戰》適合想深入學習jQuery的開發人員。本書名字雖然包含“實戰”,但是并非基礎書籍,它深入淺出,通過大量的實例代碼來介紹jQuery框架底層的實現,比如事件原理、CSS選擇器、動畫機制、jQuery擴展自定義插件編程,以及其他的開發工具和框架,如Bower和QUnit,當然還有大型Web項目經典開發原則。
我學習技術開發的原則就是堅持閱讀國外經典書籍,其次就是閱讀官方文檔。這個習慣讓我受益匪淺。本書就是我們學習jQuery高級開發的經典書籍。
移動互聯網時代,全棧工程師(Full Stack Engineer)很受歡迎。但是他們在學習技術時片面追求廣度,忽略深度,則不利于職業的長期發展。編程語言并無優劣之分,總是有許多共性或相似點,在學習過程中,應盡量去融會貫通,吸取其精華。作為高級開發人員,應該具備或理解框架底層的工作原理,以便于實際工作中的分析和優化代碼。
在業余時間翻譯本書的過程中,我還編寫代碼、作為架構顧問參與設計架構方案。翻譯本書的過程中,我收獲很多,重新認識了jQuery框架,包括底層的實現細節。
每次回想起為本書付出的巨大心血,我都會嚇一跳。曼寧出版社的人聯系我希望我參與《jQuery in Action》(第三版)的編寫工作時,我就知道這并不是一件輕松的差事,但是,我還是低估了這個工作量。我認為:“這是小菜一碟。幾個月就能搞定了”。其實是兩年時間,夜以繼日地工作才完成。但是我沒有后悔當初的選擇。編寫本書已經成為難以忘懷的經歷,它改變了我,鍛煉了我多方面的能力。我已經成為一位更出色的工程師和作者,當然也精進了我的jQuery編程水平。
兩年前,我還是一個鐘情于jQuery的開發者,非常感謝這個框架解決了我許多棘手的技術問題。編寫本書之前,我的jQuery知識已經非常不錯,但是參與本書的編寫讓我對jQuery知識了解得更加深入,學習了很多底層的架構,更上了一層樓。修訂本書要求我定期為jQuery項目作出貢獻——我已經被邀請加入jQuery團隊。毋庸置疑,參與本書的編寫工作,是我人生中意想不到的榮譽和巨大成就,我非常自豪。
既然已經知道我為什么參與本書的編寫,那么還有一個關鍵的問題:第三版有沒有必要?我認為是必須的。主要有兩個基本原因:首先,第二版涵蓋的最新內容為jQuery 1.4框架,第三版覆蓋最新的1.11版內容,jQuery 3(包含在本書中)剛剛開始。其次,jQuery是最流行的JavaScript框架,世界上排名前100萬的網站中有63%的使用了jQuery,從第二版出版后jQuery的變化很大。這兩個原因要求我們必須編寫更新的書籍,jQuery并非停滯不前,更不會無故消失。
第三版中你會看到一些變化。首先,刪除了關于jQuery UI的章節,因為jQuery和jQuery UI不斷發展壯大,應該有各自的書籍。其次,正如你翻開本書看到的一樣,我決定增加一些第二版沒有包含的高級主題。最后,還介紹了一些例子,如試驗頁面、代碼片段、在線demo及其他內容。翻過這一頁,深入學習本書,開始學習這個世界上最流行的JavaScript框架吧。祝你學習愉快!
Aurelio De Rosa
查看全部↓
Bear Bibeault從100波特率的Control Data Cyber計算機編寫井字游戲開始,編寫了超過30年的代碼。因為他獲得了兩個電氣工程的學位,所以大家認為Bear應該設計天線或者其他電器設備。但是從第一份在美國數據設備公司(Digital Equipment Corporation)的工作開始,他就開始迷戀上了編程工作。
Yehuda Katz在過去幾年參與過許多開源項目。除了作為jQuery項目的核心成員,他還參與了Merb項目——Ruby on Rails的一種替代框架(也是使用Ruby開發)。
Aurelio De Rosa是一名全棧Web開發工程師,擁有WAMP stack and HTML5、CSS3、Sass、JavaScript和PHP超過5年的專業開發經驗。他是jQuery和JoindIn團隊的成員、JavaScript和HTML 5領域的專家。他同樣對Web安全、訪問性、性能和SEO感興趣。
第一部分 jQuery入門 1
第1章 jQuery介紹 3
1.1 寫得少,做得多 4
1.2 低調的JavaScript 5
1.3 安裝jQuery 7
1.4 jQuery結構 11
1.5 jQuery本質 13
1.6 總結 17
第二部分 jQuery核心 19
第2章 選擇元素 21
2.1 選擇操作元素 21
2.2 基本選擇器 23
2.3 根據層級查找元素 28
2.4 通過屬性來選擇元素 30
2.5 過濾器介紹 33
2.6 使用上下文增強性能 43
2.7 技能測試 45
2.8 總結 46
第3章 操作jQuery集合 47
3.1 創建新HTML元素 47
3.2 管理jQuery集合 50
3.3 總結 70
第4章 使用特性、屬性和數據 71
4.1 定義元素特性和屬性 71
4.2 使用屬性 74
4.3 操作元素特性 79
4.4 元素中存儲自定義數據 82
4.5 總結 89
第5章 使用jQuery操作頁面 90
5.1 修改元素的樣式 90
5.2 設置元素內容 103
5.3 處理表單元素的值 119
5.4 總結 121
第6章 事件本質 122
6.1 理解瀏覽器事件模型 123
6.2 jQuery事件模型 135
6.3 總結 154
第7章 DVD光盤定位器 156
7.1 讓事件開始工作 156
7.2 總結 170
第8章 使用動畫與特效 171
8.1 顯示和隱藏元素 172
8.2 動畫元素的顯示狀態 175
8.3 為jQuery添加更多easing函數 185
8.4 創建自定義動畫 188
8.5 動畫與排隊 192
8.6 總結 201
第9章 jQuery工具函數操作DOM 203
9.1 使用jQuery屬性 204
9.2 通過jQuery使用其他庫 207
9.3 操作JavaScript對象和集合 210
9.4 其他工具函數 229
9.5 總結 234
第10章 使用Ajax與服務器交互 236
10.1 復習Ajax 236
10.2 加載內容到元素中 241
10.3 發送GET和POST請求 249
10.4 完全控制Ajax請求 261
10.5 總結 270
第11章 demo:Ajax驅動的聯系方式表單 272
11.1 項目功能 272
11.2 創建頁面標簽 274
11.3 實現PHP后臺 276
11.4 使用Ajax驗證字段 277
11.5 Ajax更多樂趣 279
11.6 使用動畫特效改善用戶體驗 281
11.7 注意訪問性 282
11.8 總結 283
第三部分 高級主題 285
第12章 jQuery擴展插件 287
12.1 為什么擴展jQuery 287
12.2 在哪里查找插件 288
12.3 jQuery插件編寫指南 292
12.4 演示:創建jQuery幻燈片插件 306
12.5 編寫自定義工具函數 316
12.6 總結 321
第13章 使用Deferred避免回調地獄 322
13.1 promise介紹 322
13.2 Deferred與Promise對象 326
13.3 Deferred方法 326
13.4 promise化一切 344
13.5 總結 345
第14章 使用QUnit進行單元測試 347
14.1 為什么測試很重要 347
14.2 QUnit入門 350
14.3 創建同步測試 353
14.4 使用斷言測試代碼 355
14.5 如何測試異步任務 361
14.6 noglobals與notrycatch 363
14.7 模塊分組測試 365
14.8 配置QUnit 366
14.9 測試套件的例子 367
14.10 總結 371
第15章 jQuery大型項目開發 373
15.1 改進選擇器性能 374
15.2 使用模塊組織代碼 378
15.3 使用RequireJS加載模塊 381
15.4 使用Bower管理依賴 385
15.5 使用Backbone.js創建單頁應用 389
15.6 總結 403
15.7 結尾 404
附錄A JavaScript高級編程必備知識 405
A.1 JavaScript對象基礎 405
A.2 一等公民函數 410
A.3 總結 419
索引 421
查看全部↓
10年前,John Resig發明了一種可以簡化Web開發的JavaScript框架。今天,根據BuiltWith.com的統計,超過80%使用JavaScript的網站使用了jQuery。如果你不知道jQuery,就很難稱得上是一個Web開發人員。
從技術角度來說,jQuery大大簡化了瀏覽器原生調用的方法代碼,壓縮了功能性代碼量。這就是jQuery的口號“Write less,do more”(寫得少,做得多)。jQuery框架也屏蔽了一些兼容性行為問題,以及一些瀏覽器中存在的著名的bug,大大簡化了開發和測試工作。
設計之初,jQuery就非常易于擴展。jQuery的插件模型讓每個開發者都可以在jQuery之上構建自己的擴展功能,有成千上萬從廣告效果到表單驗證的jQuery插件。這樣,許多Web開發者都可以很容易基于大量的開源插件構建完美的網站。
僅靠代碼并不能讓jQuery如此流行。強大的在線論壇和郵件組支持開發者在線回答問題是jQuery流行的重要原因。這些深入討論交流都促進了文檔、培訓課程和編程書籍的發展。
本書是學習jQuery開發的絕佳途徑。前面章節介紹了jQuery框架網頁開發需要的核心API,這些API可以選擇頁面元素進行操作。同樣的模式適合隱藏展示、動畫、刪除或修改元素的外觀操作。選擇元素的過程中使用了選擇器語法,而jQuery框架提供了很強大的封裝支持。
必須承認,“事件”這一章是我最喜歡的,因為我參與了jQuery 1.7中event模塊的核心代碼開發工作。這一章非常精彩,詳細解釋了事件的目的及其在網頁中的用途。通過本章可以了解用戶與網頁交互的原理。幾乎任何一項jQuery操作都是從某種特定的事件開始的。
非常高興,本書還增加了一些容易被忽視的內容,比如單元測試與大型項目的結構。許多小項目最終都會變成大項目,本書的內容也可以幫助讀者學習如何管理持續不斷增加的項目。
本書編寫了很多demo程序,向讀者展示了jQuery各個模塊如何協同跟蹤,也演示了模板的概念、所有最新JavaScript框架和應用程序的核心。即使是現在,我也感覺非常驚奇,居然可以使用如此少的代碼實現各種不同功能的強大demo!
Aurelio De Rosa已經為jQuery社區貢獻了很多年,也是jQuery內容團隊成員,致力于確保jQuery在線文檔的及時準確更新。他在本書中給了大家最新的jQuery庫的信息。Aurelio在編寫本書的時候也完善了在線文檔,以及一些不一致或者缺失的內容。作為本書的讀者,你真的非常幸運,很快就會成為真正的jQuery開發者。加油!“Write less,do more!”
Dave Methvin
jQuery基金會主席
查看全部↓