出版時間:2012-5 出版社:人民郵電出版社 作者:[荷] Peter Lubbers,[美] Brian Albers,[美] Frank Salim 頁數(shù):276 字數(shù):431000 譯者:柳 靖,李 杰,劉 淼
Tag標簽:無
前言
前 言 HTML5是全新的。事實上,它甚至還沒有完全成熟。如果你聽一些“壞脾氣”專家的介紹,他們會告訴你HTML5在未來10年甚至更久的時間里都不會完全成熟! 那么,為什么會有人認為現(xiàn)在是時候編寫一本討論HTML5編程的書呢?原因很簡單。對于希望自己的Web應用程序能夠卓而不群的人,HTML5正是眾望所歸。本書作者致力于研究開發(fā)和講授HTML5技術已有兩年多,現(xiàn)在可以肯定地說,在實際Web應用中新標準的采納程度正在以令人目眩的速度不斷加快。即使在編寫本書的過程中,我們都被迫不斷更新書中的瀏覽器支持表格,重新評估哪些技術又具備了使用條件?! ∶鎸ψ约赫谑褂玫臑g覽器,大多數(shù)用戶并不真正了解其具備的功能有多強大。當然,他們在瀏覽器自動更新后可能會發(fā)現(xiàn)一些細微的界面改變。但他們可能不知道,新版本的瀏覽器剛剛引入了可自由繪圖的canvas、實時網(wǎng)絡通信或其他一些潛在的功能升級。 本書的目標是幫助開發(fā)者釋放HTML5的潛力。 本書讀者對象 本書針對熟悉JavaScript編程且有經(jīng)驗的Web應用程序開發(fā)者。也就是說,本書將不涉及Web開發(fā)的基礎知識。如果想了解Web編程的基礎知識,目前的資源已經(jīng)夠多了。如果讀者遇到了下面的情況,那么本書可以為你提供有用的見解和信息,這些見解和信息可能正是你在努力尋找的?! ∧阌袝r會發(fā)現(xiàn)自己在想:“如果我的瀏覽器可以……” 你發(fā)現(xiàn)自己通過頁面的源代碼和開發(fā)工具來分析一個令人印象深刻的網(wǎng)站。 你喜歡查看最新瀏覽器的版本發(fā)布信息,了解其更新了什么功能?! ∧阍趯ふ覂?yōu)化或簡化應用程序的方法。 你想針對使用最新瀏覽器的用戶定制網(wǎng)站,以便盡可能提供最佳用戶體驗?! ∪绻鲜鋈魏我豁椄愕那闆r吻合,那么這本書可能就很適合你。 雖然我們在適當情況下特意指出了瀏覽器支持的局限性,但目的并非要給出一個兼容舊瀏覽器且可無縫運行的解決方案。經(jīng)驗表明,瀏覽器更新?lián)Q代的速度一日千里,如果要獲取瀏覽器兼容解決方案方面的相關信息,本書不是最好的渠道。相反,我們專注于HTML5規(guī)范及其使用方法。兼容的解決方案可以在因特網(wǎng)上找到,而隨著時間的推移,這些解決方案也會漸漸被人遺忘?! ”緯鴥?nèi)容 本書的13章內(nèi)容涵蓋了從HTML5 API中挑選出來的適用面廣、功能強大的API。在某些情況下,為了更好地演示程序,我們需要用到前面章節(jié)已經(jīng)介紹過的功能?! 〉?章“HTML5概述”,從HTML版本的發(fā)展歷程說起,介紹了HTML規(guī)范過去和現(xiàn)在的版本情況,然后介紹了新的高級語義標簽,以及一些根本性的改進,同時還分析了HTML5背后的設計理念。了解這些對讀者是有益的?! 〉?章“Canvas API”、第3章“SVG”和第4章“音頻和視頻”,討論了新的可視化元素和媒體元素。在這三章中,集中討論如何在無插件和無服務器交互的情況下優(yōu)化用戶界面?! 〉?章“Geolocation API”介紹的是一個全新的功能。在此之前,它很難通過模擬方式實現(xiàn),它賦予應用程序確定用戶當前位置的能力,并可以用來定制用戶體驗。這里對隱私的保護也很重要,所以我們會介紹隱私保護的相關內(nèi)容?! 〉?章“Communication API”和第7章“WebSockets API”展示了HTML5提供的日益強大的通信能力。有了這兩個API,Web應用不僅可以同其他網(wǎng)站進行通信,而且還能以最簡單的代碼和最小的網(wǎng)絡開銷進行實時數(shù)據(jù)流的傳遞。這兩章中的技術將有助于開發(fā)人員簡化目前網(wǎng)絡上部署的過于復雜的架構(gòu)?! 〉?章“Forms API”,參照這章介紹的內(nèi)容,開發(fā)人員通過細小的調(diào)整即可增加桌面Web應用程序和移動Web應用程序的可用性。利用這一章介紹的其他新特性,則可以檢測大多數(shù)常見場景中的頁面輸入錯誤。第9章詳細介紹了新的拖放API的功能,并展示了如何使用它們?! 〉?0章“Web Workers API”、第11章“Web Storage API”和第12章“構(gòu)建離線Web應用”,解決了應用程序的內(nèi)部數(shù)據(jù)管道問題。在這三章中,開發(fā)人員會學到如何優(yōu)化現(xiàn)有系統(tǒng)來獲得更好的性能和更好的數(shù)據(jù)管理功能?! ∽詈?,第13章“HTML5未來展望”討論了一些可能會在HTML5中陸續(xù)出現(xiàn)的功能,這些功能可能讓大家垂涎已久了。 示例代碼和配套網(wǎng)站 本書中的示例代碼都可從Apress網(wǎng)站的Source Code部分找到。訪問www.apress.com,單擊Source Code,然后查找這本書的標題即可。讀者可以從本書主頁上下載源代碼。此外,我們還建立了一個配套網(wǎng)站,地址為www.prohtml5.com,讀者也可以在此下載示例代碼和一些實用附加功能源碼 ?! ÷?lián)系作者 感謝購買此書,我們希望你喜歡它,并把它當做一個寶貴的資源。盡管已經(jīng)盡了最大努力,但我們知道一時疏忽就可能引發(fā)錯誤,在此,我們?yōu)榭赡艿氖韬霰硎厩敢?。我們歡迎你對此書的內(nèi)容和源代碼發(fā)表意見和評論。你可以發(fā)送郵件至prohtml5@gmail.com來與我們?nèi)〉寐?lián)系。
內(nèi)容概要
《深入HTML5編程(第2版)》首先介紹了HTML5的歷史背景、新的語義標簽及與以往HTML版本相比的根本變化,同時揭示了HTML5背后的設計原理。本書在上一版的基礎上新增了SVG和拖放API相關內(nèi)容,并對部分內(nèi)容進行了更新。從第2章起,分別圍繞構(gòu)建令人神往的富Web 應用,逐一討論了HTML5的Canvas、Geolocation、Communication、WebSocket、Forms、WebWorkers、Storage等API的使用,輔以直觀明了的客戶端和服務器端示例代碼,讓開發(fā)人員能夠迅速理解和掌握新一代Web標準所涵蓋的核心技術。《深入HTML5編程(第2版)》最后探索了離線Web應用并展望了HTML5未來的發(fā)展前景。
《深入HTML5編程(第2版)》面向有一定經(jīng)驗的Web應用開發(fā)人員,對HTML5及未來Web應用技術發(fā)展有濃厚興趣的讀者也可以學習參考。
作者簡介
Peter Lubbers
Kaazing技術交流資深總監(jiān),舊金山HTML5用戶組創(chuàng)建人。作為HTML5和WebSocket的狂熱愛好者,Peter經(jīng)常在國際大會上發(fā)言,還在全球范圍內(nèi)開展HTML5的技術培訓。在加盟Kaazing前,Peter在Oracle擔任了近十年的資深信息架構(gòu)師,獲得過兩項軟件專利。
Brian Albers
Kaazing研發(fā)中心副總裁。他有數(shù)十年的Web開發(fā)經(jīng)驗,曾在Oracle擔任高級開發(fā)經(jīng)理。Brian經(jīng)常在Web 2.0博覽會、AJAXWorld博覽會和Web JavaOne等國際性會議上做講演。
Frank Salim
Kaazing的元老級工程師,曾參與過WebSocket網(wǎng)關和客戶端策略項目。他畢業(yè)于波莫納學院計算機專業(yè),除了編程之外,還喜歡閱讀、繪畫和輪滑。
書籍目錄
第1章 HTML5概述 1
1.1 HTML5發(fā)展史 1
1.2 關于2022年的那個神話 2
1.3 誰在開發(fā)HTML5 3
1.4 新的認識 3
1.4.1 兼容性和存在即合理 3
1.4.2 效率和用戶優(yōu)先 4
1.4.3 化繁為簡 5
1.4.4 通用訪問 5
1.5 無插件范式 5
1.6 HTML5的新功能 8
1.6.1 新的DOCTYPE和字符集 8
1.6.2 新元素和舊元素 9
1.6.3 語義化標記 10
1.6.4 使用Selectors API簡化選取操作 15
1.6.5 JavaScript日志和調(diào)試 18
1.6.6 window.JSON 19
1.6.7 DOM Level 3 19
1.6.8 Monkeys、Squirrelfish和其他JavaScript引擎 19
1.7 小結(jié) 21
第2章 Canvas API 22
2.1 HTML5 Canvas概述 22
2.1.1 歷史 22
2.1.2 canvas是什么 23
2.1.3 canvas坐標 23
2.1.4 什么情況下不用canvas 23
2.1.5 替代內(nèi)容 24
2.1.6 CSS和canvas 25
2.1.7 瀏覽器對HTML5 Canvas的支持情況 25
2.2 使用HTML5 Canvas API 25
2.2.1 檢測瀏覽器支持情況 25
2.2.2 在頁面中加入canvas 26
2.2.3 變換 28
2.2.4 路徑 30
2.2.5 描邊樣式 32
2.2.6 填充樣式 34
2.2.7 填充矩形區(qū)域 34
2.2.8 繪制曲線 35
2.2.9 在canvas中插入圖片 37
2.2.10 漸變 38
2.2.11 背景圖 40
2.2.12 縮放canvas對象 42
2.2.13 Canvas變換 43
2.2.14 Canvas文本 45
2.2.15 應用陰影 46
2.2.16 像素數(shù)據(jù) 48
2.2.17 Canvas的安全機制 50
2.3 使用HTML5 Canvas創(chuàng)建應用 51
2.3.1 進階功能之全頁玻璃窗 54
2.3.2 進階功能之為Canvas動畫計時 54
2.4 小結(jié) 57
第3章 SVG 58
3.1 SVG概述 58
3.1.1 歷史 58
3.1.2 理解SVG 59
3.1.3 可縮放圖形 61
3.1.4 使用SVG創(chuàng)建2D圖形 61
3.1.5 在頁面中添加SVG 61
3.1.6 簡單的形狀 62
3.1.7 變換SVG元素 63
3.1.8 復用內(nèi)容 64
3.1.9 圖案和漸變 64
3.1.10 SVG路徑 65
3.1.11 使用SVG文本 66
3.1.12 組合場景 67
3.2 使用SVG創(chuàng)建交互式應用 68
3.2.1 添加樹 69
3.2.2 添加updateTrees函數(shù) 69
3.2.3 添加removeTree函數(shù) 70
3.2.4 添加CSS樣式 70
3.2.5 最終代碼 70
3.3 小結(jié) 74
第4章 音頻和視頻 75
4.1 HTML5 Audio和Video概述 75
4.1.1 視頻容器 75
4.1.2 音頻和視頻編解碼器 76
4.1.3 HTML5 Audio和Video的限制 77
4.1.4 audio元素和video元素的瀏覽器支持情況 77
4.2 使用HTML5 Audio和Video API 78
4.2.1 瀏覽器支持性檢測 79
4.2.2 可訪問性 79
4.2.3 理解媒體元素 80
4.2.4 使用audio元素 85
4.2.5 使用video元素 86
4.2.6 進階功能 93
4.3 小結(jié) 95
第5章 Geolocation API 96
5.1 位置信息 96
5.1.1 緯度和經(jīng)度坐標 96
5.1.2 位置信息從何而來 97
5.1.3 IP地址地理定位數(shù)據(jù) 98
5.1.4 GPS地理定位數(shù)據(jù) 98
5.1.5 Wi-Fi地理定位數(shù)據(jù) 98
5.1.6 手機地理定位數(shù)據(jù) 99
5.1.7 用戶自定義的地理定位數(shù)據(jù) 99
5.2 HTML5 Geolocation的瀏覽器支持情況 99
5.3 隱私 100
5.3.1 觸發(fā)隱私保護機制 101
5.3.2 處理位置信息 101
5.4 使用HTML5 Geolocation API 102
5.4.1 瀏覽器支持性檢查 102
5.4.2 位置請求 102
5.5 使用HTML5 Geolocation構(gòu)建應用 107
5.5.1 編寫HTML顯示代碼 109
5.5.2 處理Geolocation數(shù)據(jù) 110
5.5.3 最終代碼 112
5.6 進階功能 115
5.6.1 現(xiàn)在的狀態(tài)是什么 115
5.6.2 在Goolge Map上顯示“我在這里” 117
5.7 小結(jié) 118
第6章 Communication API 119
6.1 跨文檔消息通信 119
6.1.1 理解源安全 122
6.1.2 跨文檔消息通信的瀏覽器支持情況 122
6.1.3 使用postMessage API 123
6.1.4 使用postMessage API創(chuàng)建應用 124
6.2 XMLHttpRequest Level 2 128
6.2.1 跨源XMLHttpRequest 129
6.2.2 進度事件 130
6.2.3 HTML5 XMLHttpRequestLevel 2的瀏覽器支持情況 131
6.2.4 使用XMLHttpRequest API 131
6.2.5 創(chuàng)建XMLHttpRequest應用 133
6.3 進階功能 136
6.3.1 結(jié)構(gòu)化的數(shù)據(jù) 136
6.3.2 Framebusting 136
6.4 小結(jié) 137
第7章 WebSockets API 138
7.1 WebSockets概述 138
7.1.1 實時和HTTP 138
7.1.2 解讀WebSockets 140
7.2 編寫簡單的Echo WebSocket服務器 145
7.3 使用HTML5 WebSockets API 153
7.3.1 瀏覽器支持情況檢測 153
7.3.2 API的基本用法 154
7.4 創(chuàng)建HTML5 WebSockets應用程序 158
7.4.1 編寫HTML文件 159
7.4.2 添加WebSocket代碼 160
7.4.3 添加Geolocation代碼 160
7.4.4 合并所有內(nèi)容 161
7.4.5 最終代碼 163
7.5 小結(jié) 165
第8章 Forms API 166
8.1 HTML5 Forms概述 166
8.1.1 HTML Forms與XForms 166
8.1.2 功能性表單 167
8.1.3 HTML5 Forms的瀏覽器支持情況 167
8.1.4 輸入型控件目錄 168
8.2 使用HTML5 Forms API 172
8.2.1 新的表單特性和函數(shù) 172
8.2.2 表單驗證 175
8.2.3 驗證反饋 178
8.3 構(gòu)建HTML5 Forms應用 180
8.4 小結(jié) 185
第9章 拖放 186
9.1 Web拖放發(fā)展史 186
9.2 HTML5拖放概述 187
9.2.1 藍圖 187
9.2.2 需要記住的事件 189
9.2.3 設置元素可拖動 192
9.2.4 傳輸和控制 192
9.3 構(gòu)建拖放應用 193
9.4 拖放文件 201
9.5 進階功能 205
9.6 小結(jié) 206
第10章 Web Workers API 207
10.1 Web Workers的瀏覽器支持情況 208
10.2 使用Web Workers API 208
10.2.1 瀏覽器支持性檢查 208
10.2.2 創(chuàng)建Web Workers 209
10.2.3 多個JavaScript文件的加載與執(zhí)行 209
10.2.4 與HTML5 Web Workers通信 209
10.3 編寫主頁 210
10.3.1 處理錯誤 211
10.3.2 停止Web Workers 212
10.3.3 Web Workers的嵌套使用 212
10.3.4 使用定時器 213
10.3.5 示例代碼 213
10.4 構(gòu)建Web Workers應用 214
10.4.1 編寫blur.js輔助腳本 216
10.4.2 編寫blur.html應用頁面 217
10.4.3 編寫blurWorker.js 218
10.4.4 與Web Worker通信 218
10.4.5 運行程序 219
10.4.6 示例代碼 220
10.5 小結(jié) 225
第11章 Web Storage API 226
11.1 HTML5 Web Storage概述 226
11.2 Web Storage的瀏覽器支持情況 227
11.3 使用Web Storage API 227
11.3.1 檢查瀏覽器的支持性 227
11.3.2 設置和獲取數(shù)據(jù) 229
11.3.3 封堵數(shù)據(jù)泄漏 230
11.3.4 localStorage與sessionStorage 230
11.3.5 Web Storage API的其他特性和函數(shù) 232
11.3.6 更新Web Storage后的通信 234
11.3.7 探索Web Storage 235
11.4 構(gòu)建Web Storage應用 236
11.5 瀏覽器數(shù)據(jù)庫存儲展望 247
11.5.1 Web SQL Database 247
11.5.2 索引數(shù)據(jù)庫API 250
11.6 進階功能 251
11.6.1 JSON對象的存儲 251
11.6.2 共享窗口 252
11.7 小結(jié) 253
第12章 構(gòu)建離線Web應用 254
12.1 HTML5離線Web應用概述 254
12.2 使用HTML5離線Web應用API 256
12.2.1 檢查瀏覽器的支持情況 256
12.2.2 搭建簡單的離線應用程序 256
12.2.3 支持離線行為 257
12.2.4 manifest文件 257
12.2.5 applicationCache API 259
12.2.6 運行中的應用緩存 260
12.3 使用HTML5離線Web應用構(gòu)建應用 261
12.3.1 創(chuàng)建記錄資源的manifest文件 263
12.3.2 創(chuàng)建構(gòu)成界面的HTML和CSS 264
12.3.3 創(chuàng)建離線JavaScript 264
12.3.4 檢查applicationCache的支持情況 266
12.3.5 為Update按鈕添加處理函數(shù) 266
12.3.6 添加Geolocation跟蹤代碼 267
12.3.7 添加Storage功能代碼 267
12.3.8 添加離線事件處理程序 268
12.4 小結(jié) 268
第13章 HTML5未來展望 269
13.1 HTML5的瀏覽器支持情況 269
13.2 HTML未來的發(fā)展 269
13.2.1 WebGL 270
13.2.2 設備 272
13.2.3 音頻數(shù)據(jù)API 272
13.2.4 觸摸屏設備事件 272
13.2.5 P2P網(wǎng)絡 275
13.2.6 最終方向 275
13.3 小結(jié) 275
媒體關注與評論
“本書并沒有試圖從頭到尾介紹HTML5的所有基礎知識,而是挑選特定主題深入介紹,比如SVG、拖放、音頻/視頻、Canvas等。介紹這些主題的詳細程度正是我所希望的。” ——讀者評論 “三位作者共同操刀,為我們呈獻了功能強大且實用的HTML5代碼。本書打破了HTML5在近幾年尚不可用的魔咒,深入講解了具有主流瀏覽器支持的API的使用方法,解答了我關于HTML5標準的許多疑問,建議每位熟悉HTML并想使用新標準的人員都閱讀本書。” ——某讀者
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載