出版時(shí)間:2012-5 出版社:人民郵電出版社 作者:[荷] Peter Lubbers,[美] Brian Albers,[美] Frank Salim 頁(yè)數(shù):276 字?jǐn)?shù):431000 譯者:柳 靖,李 杰,劉 淼
Tag標(biāo)簽:無(wú)
前言
前 言 HTML5是全新的。事實(shí)上,它甚至還沒(méi)有完全成熟。如果你聽一些“壞脾氣”專家的介紹,他們會(huì)告訴你HTML5在未來(lái)10年甚至更久的時(shí)間里都不會(huì)完全成熟! 那么,為什么會(huì)有人認(rèn)為現(xiàn)在是時(shí)候編寫一本討論HTML5編程的書呢?原因很簡(jiǎn)單。對(duì)于希望自己的Web應(yīng)用程序能夠卓而不群的人,HTML5正是眾望所歸。本書作者致力于研究開發(fā)和講授HTML5技術(shù)已有兩年多,現(xiàn)在可以肯定地說(shuō),在實(shí)際Web應(yīng)用中新標(biāo)準(zhǔn)的采納程度正在以令人目眩的速度不斷加快。即使在編寫本書的過(guò)程中,我們都被迫不斷更新書中的瀏覽器支持表格,重新評(píng)估哪些技術(shù)又具備了使用條件?! ∶鎸?duì)自己正在使用的瀏覽器,大多數(shù)用戶并不真正了解其具備的功能有多強(qiáng)大。當(dāng)然,他們?cè)跒g覽器自動(dòng)更新后可能會(huì)發(fā)現(xiàn)一些細(xì)微的界面改變。但他們可能不知道,新版本的瀏覽器剛剛引入了可自由繪圖的canvas、實(shí)時(shí)網(wǎng)絡(luò)通信或其他一些潛在的功能升級(jí)?! ”緯哪繕?biāo)是幫助開發(fā)者釋放HTML5的潛力?! ”緯x者對(duì)象 本書針對(duì)熟悉JavaScript編程且有經(jīng)驗(yàn)的Web應(yīng)用程序開發(fā)者。也就是說(shuō),本書將不涉及Web開發(fā)的基礎(chǔ)知識(shí)。如果想了解Web編程的基礎(chǔ)知識(shí),目前的資源已經(jīng)夠多了。如果讀者遇到了下面的情況,那么本書可以為你提供有用的見(jiàn)解和信息,這些見(jiàn)解和信息可能正是你在努力尋找的?! ∧阌袝r(shí)會(huì)發(fā)現(xiàn)自己在想:“如果我的瀏覽器可以……” 你發(fā)現(xiàn)自己通過(guò)頁(yè)面的源代碼和開發(fā)工具來(lái)分析一個(gè)令人印象深刻的網(wǎng)站?! ∧阆矚g查看最新瀏覽器的版本發(fā)布信息,了解其更新了什么功能?! ∧阍趯ふ覂?yōu)化或簡(jiǎn)化應(yīng)用程序的方法?! ∧阆脶槍?duì)使用最新瀏覽器的用戶定制網(wǎng)站,以便盡可能提供最佳用戶體驗(yàn)?! ∪绻鲜鋈魏我豁?xiàng)跟你的情況吻合,那么這本書可能就很適合你?! ‰m然我們?cè)谶m當(dāng)情況下特意指出了瀏覽器支持的局限性,但目的并非要給出一個(gè)兼容舊瀏覽器且可無(wú)縫運(yùn)行的解決方案。經(jīng)驗(yàn)表明,瀏覽器更新?lián)Q代的速度一日千里,如果要獲取瀏覽器兼容解決方案方面的相關(guān)信息,本書不是最好的渠道。相反,我們專注于HTML5規(guī)范及其使用方法。兼容的解決方案可以在因特網(wǎng)上找到,而隨著時(shí)間的推移,這些解決方案也會(huì)漸漸被人遺忘?! ”緯鴥?nèi)容 本書的13章內(nèi)容涵蓋了從HTML5 API中挑選出來(lái)的適用面廣、功能強(qiáng)大的API。在某些情況下,為了更好地演示程序,我們需要用到前面章節(jié)已經(jīng)介紹過(guò)的功能。 第1章“HTML5概述”,從HTML版本的發(fā)展歷程說(shuō)起,介紹了HTML規(guī)范過(guò)去和現(xiàn)在的版本情況,然后介紹了新的高級(jí)語(yǔ)義標(biāo)簽,以及一些根本性的改進(jìn),同時(shí)還分析了HTML5背后的設(shè)計(jì)理念。了解這些對(duì)讀者是有益的?! 〉?章“Canvas API”、第3章“SVG”和第4章“音頻和視頻”,討論了新的可視化元素和媒體元素。在這三章中,集中討論如何在無(wú)插件和無(wú)服務(wù)器交互的情況下優(yōu)化用戶界面?! 〉?章“Geolocation API”介紹的是一個(gè)全新的功能。在此之前,它很難通過(guò)模擬方式實(shí)現(xiàn),它賦予應(yīng)用程序確定用戶當(dāng)前位置的能力,并可以用來(lái)定制用戶體驗(yàn)。這里對(duì)隱私的保護(hù)也很重要,所以我們會(huì)介紹隱私保護(hù)的相關(guān)內(nèi)容?! 〉?章“Communication API”和第7章“WebSockets API”展示了HTML5提供的日益強(qiáng)大的通信能力。有了這兩個(gè)API,Web應(yīng)用不僅可以同其他網(wǎng)站進(jìn)行通信,而且還能以最簡(jiǎn)單的代碼和最小的網(wǎng)絡(luò)開銷進(jìn)行實(shí)時(shí)數(shù)據(jù)流的傳遞。這兩章中的技術(shù)將有助于開發(fā)人員簡(jiǎn)化目前網(wǎng)絡(luò)上部署的過(guò)于復(fù)雜的架構(gòu)?! 〉?章“Forms API”,參照這章介紹的內(nèi)容,開發(fā)人員通過(guò)細(xì)小的調(diào)整即可增加桌面Web應(yīng)用程序和移動(dòng)Web應(yīng)用程序的可用性。利用這一章介紹的其他新特性,則可以檢測(cè)大多數(shù)常見(jiàn)場(chǎng)景中的頁(yè)面輸入錯(cuò)誤。第9章詳細(xì)介紹了新的拖放API的功能,并展示了如何使用它們。 第10章“Web Workers API”、第11章“Web Storage API”和第12章“構(gòu)建離線Web應(yīng)用”,解決了應(yīng)用程序的內(nèi)部數(shù)據(jù)管道問(wèn)題。在這三章中,開發(fā)人員會(huì)學(xué)到如何優(yōu)化現(xiàn)有系統(tǒng)來(lái)獲得更好的性能和更好的數(shù)據(jù)管理功能?! ∽詈?,第13章“HTML5未來(lái)展望”討論了一些可能會(huì)在HTML5中陸續(xù)出現(xiàn)的功能,這些功能可能讓大家垂涎已久了?! ∈纠a和配套網(wǎng)站 本書中的示例代碼都可從Apress網(wǎng)站的Source Code部分找到。訪問(wèn)www.apress.com,單擊Source Code,然后查找這本書的標(biāo)題即可。讀者可以從本書主頁(yè)上下載源代碼。此外,我們還建立了一個(gè)配套網(wǎng)站,地址為www.prohtml5.com,讀者也可以在此下載示例代碼和一些實(shí)用附加功能源碼 ?! ÷?lián)系作者 感謝購(gòu)買此書,我們希望你喜歡它,并把它當(dāng)做一個(gè)寶貴的資源。盡管已經(jīng)盡了最大努力,但我們知道一時(shí)疏忽就可能引發(fā)錯(cuò)誤,在此,我們?yōu)榭赡艿氖韬霰硎厩敢狻N覀儦g迎你對(duì)此書的內(nèi)容和源代碼發(fā)表意見(jiàn)和評(píng)論。你可以發(fā)送郵件至prohtml5@gmail.com來(lái)與我們?nèi)〉寐?lián)系。
內(nèi)容概要
《深入HTML5編程(第2版)》首先介紹了HTML5的歷史背景、新的語(yǔ)義標(biāo)簽及與以往HTML版本相比的根本變化,同時(shí)揭示了HTML5背后的設(shè)計(jì)原理。本書在上一版的基礎(chǔ)上新增了SVG和拖放API相關(guān)內(nèi)容,并對(duì)部分內(nèi)容進(jìn)行了更新。從第2章起,分別圍繞構(gòu)建令人神往的富Web 應(yīng)用,逐一討論了HTML5的Canvas、Geolocation、Communication、WebSocket、Forms、WebWorkers、Storage等API的使用,輔以直觀明了的客戶端和服務(wù)器端示例代碼,讓開發(fā)人員能夠迅速理解和掌握新一代Web標(biāo)準(zhǔn)所涵蓋的核心技術(shù)。《深入HTML5編程(第2版)》最后探索了離線Web應(yīng)用并展望了HTML5未來(lái)的發(fā)展前景。
《深入HTML5編程(第2版)》面向有一定經(jīng)驗(yàn)的Web應(yīng)用開發(fā)人員,對(duì)HTML5及未來(lái)Web應(yīng)用技術(shù)發(fā)展有濃厚興趣的讀者也可以學(xué)習(xí)參考。
作者簡(jiǎn)介
Peter Lubbers
Kaazing技術(shù)交流資深總監(jiān),舊金山HTML5用戶組創(chuàng)建人。作為HTML5和WebSocket的狂熱愛(ài)好者,Peter經(jīng)常在國(guó)際大會(huì)上發(fā)言,還在全球范圍內(nèi)開展HTML5的技術(shù)培訓(xùn)。在加盟Kaazing前,Peter在Oracle擔(dān)任了近十年的資深信息架構(gòu)師,獲得過(guò)兩項(xiàng)軟件專利。
Brian Albers
Kaazing研發(fā)中心副總裁。他有數(shù)十年的Web開發(fā)經(jīng)驗(yàn),曾在Oracle擔(dān)任高級(jí)開發(fā)經(jīng)理。Brian經(jīng)常在Web 2.0博覽會(huì)、AJAXWorld博覽會(huì)和Web JavaOne等國(guó)際性會(huì)議上做講演。
Frank Salim
Kaazing的元老級(jí)工程師,曾參與過(guò)WebSocket網(wǎng)關(guān)和客戶端策略項(xiàng)目。他畢業(yè)于波莫納學(xué)院計(jì)算機(jī)專業(yè),除了編程之外,還喜歡閱讀、繪畫和輪滑。
書籍目錄
第1章 HTML5概述 1
1.1 HTML5發(fā)展史 1
1.2 關(guān)于2022年的那個(gè)神話 2
1.3 誰(shuí)在開發(fā)HTML5 3
1.4 新的認(rèn)識(shí) 3
1.4.1 兼容性和存在即合理 3
1.4.2 效率和用戶優(yōu)先 4
1.4.3 化繁為簡(jiǎn) 5
1.4.4 通用訪問(wèn) 5
1.5 無(wú)插件范式 5
1.6 HTML5的新功能 8
1.6.1 新的DOCTYPE和字符集 8
1.6.2 新元素和舊元素 9
1.6.3 語(yǔ)義化標(biāo)記 10
1.6.4 使用Selectors API簡(jiǎn)化選取操作 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坐標(biāo) 23
2.1.4 什么情況下不用canvas 23
2.1.5 替代內(nèi)容 24
2.1.6 CSS和canvas 25
2.1.7 瀏覽器對(duì)HTML5 Canvas的支持情況 25
2.2 使用HTML5 Canvas API 25
2.2.1 檢測(cè)瀏覽器支持情況 25
2.2.2 在頁(yè)面中加入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對(duì)象 42
2.2.13 Canvas變換 43
2.2.14 Canvas文本 45
2.2.15 應(yīng)用陰影 46
2.2.16 像素?cái)?shù)據(jù) 48
2.2.17 Canvas的安全機(jī)制 50
2.3 使用HTML5 Canvas創(chuàng)建應(yīng)用 51
2.3.1 進(jìn)階功能之全頁(yè)玻璃窗 54
2.3.2 進(jìn)階功能之為Canvas動(dòng)畫計(jì)時(shí) 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 在頁(yè)面中添加SVG 61
3.1.6 簡(jiǎn)單的形狀 62
3.1.7 變換SVG元素 63
3.1.8 復(fù)用內(nèi)容 64
3.1.9 圖案和漸變 64
3.1.10 SVG路徑 65
3.1.11 使用SVG文本 66
3.1.12 組合場(chǎng)景 67
3.2 使用SVG創(chuàng)建交互式應(yī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 瀏覽器支持性檢測(cè) 79
4.2.2 可訪問(wèn)性 79
4.2.3 理解媒體元素 80
4.2.4 使用audio元素 85
4.2.5 使用video元素 86
4.2.6 進(jìn)階功能 93
4.3 小結(jié) 95
第5章 Geolocation API 96
5.1 位置信息 96
5.1.1 緯度和經(jīng)度坐標(biāo) 96
5.1.2 位置信息從何而來(lái) 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 手機(jī)地理定位數(shù)據(jù) 99
5.1.7 用戶自定義的地理定位數(shù)據(jù) 99
5.2 HTML5 Geolocation的瀏覽器支持情況 99
5.3 隱私 100
5.3.1 觸發(fā)隱私保護(hù)機(jī)制 101
5.3.2 處理位置信息 101
5.4 使用HTML5 Geolocation API 102
5.4.1 瀏覽器支持性檢查 102
5.4.2 位置請(qǐng)求 102
5.5 使用HTML5 Geolocation構(gòu)建應(yīng)用 107
5.5.1 編寫HTML顯示代碼 109
5.5.2 處理Geolocation數(shù)據(jù) 110
5.5.3 最終代碼 112
5.6 進(jìn)階功能 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)建應(yīng)用 124
6.2 XMLHttpRequest Level 2 128
6.2.1 跨源XMLHttpRequest 129
6.2.2 進(jìn)度事件 130
6.2.3 HTML5 XMLHttpRequestLevel 2的瀏覽器支持情況 131
6.2.4 使用XMLHttpRequest API 131
6.2.5 創(chuàng)建XMLHttpRequest應(yīng)用 133
6.3 進(jìn)階功能 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 實(shí)時(shí)和HTTP 138
7.1.2 解讀WebSockets 140
7.2 編寫簡(jiǎn)單的Echo WebSocket服務(wù)器 145
7.3 使用HTML5 WebSockets API 153
7.3.1 瀏覽器支持情況檢測(cè) 153
7.3.2 API的基本用法 154
7.4 創(chuàng)建HTML5 WebSockets應(yīng)用程序 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 表單驗(yàn)證 175
8.2.3 驗(yàn)證反饋 178
8.3 構(gòu)建HTML5 Forms應(yīng)用 180
8.4 小結(jié) 185
第9章 拖放 186
9.1 Web拖放發(fā)展史 186
9.2 HTML5拖放概述 187
9.2.1 藍(lán)圖 187
9.2.2 需要記住的事件 189
9.2.3 設(shè)置元素可拖動(dòng) 192
9.2.4 傳輸和控制 192
9.3 構(gòu)建拖放應(yīng)用 193
9.4 拖放文件 201
9.5 進(jìn)階功能 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 多個(gè)JavaScript文件的加載與執(zhí)行 209
10.2.4 與HTML5 Web Workers通信 209
10.3 編寫主頁(yè) 210
10.3.1 處理錯(cuò)誤 211
10.3.2 停止Web Workers 212
10.3.3 Web Workers的嵌套使用 212
10.3.4 使用定時(shí)器 213
10.3.5 示例代碼 213
10.4 構(gòu)建Web Workers應(yīng)用 214
10.4.1 編寫blur.js輔助腳本 216
10.4.2 編寫blur.html應(yīng)用頁(yè)面 217
10.4.3 編寫blurWorker.js 218
10.4.4 與Web Worker通信 218
10.4.5 運(yùn)行程序 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è)置和獲取數(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應(yīng)用 236
11.5 瀏覽器數(shù)據(jù)庫(kù)存儲(chǔ)展望 247
11.5.1 Web SQL Database 247
11.5.2 索引數(shù)據(jù)庫(kù)API 250
11.6 進(jìn)階功能 251
11.6.1 JSON對(duì)象的存儲(chǔ) 251
11.6.2 共享窗口 252
11.7 小結(jié) 253
第12章 構(gòu)建離線Web應(yīng)用 254
12.1 HTML5離線Web應(yīng)用概述 254
12.2 使用HTML5離線Web應(yīng)用API 256
12.2.1 檢查瀏覽器的支持情況 256
12.2.2 搭建簡(jiǎn)單的離線應(yīng)用程序 256
12.2.3 支持離線行為 257
12.2.4 manifest文件 257
12.2.5 applicationCache API 259
12.2.6 運(yùn)行中的應(yīng)用緩存 260
12.3 使用HTML5離線Web應(yīng)用構(gòu)建應(yīng)用 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未來(lái)展望 269
13.1 HTML5的瀏覽器支持情況 269
13.2 HTML未來(lái)的發(fā)展 269
13.2.1 WebGL 270
13.2.2 設(shè)備 272
13.2.3 音頻數(shù)據(jù)API 272
13.2.4 觸摸屏設(shè)備事件 272
13.2.5 P2P網(wǎng)絡(luò) 275
13.2.6 最終方向 275
13.3 小結(jié) 275
媒體關(guān)注與評(píng)論
“本書并沒(méi)有試圖從頭到尾介紹HTML5的所有基礎(chǔ)知識(shí),而是挑選特定主題深入介紹,比如SVG、拖放、音頻/視頻、Canvas等。介紹這些主題的詳細(xì)程度正是我所希望的。” ——讀者評(píng)論 “三位作者共同操刀,為我們呈獻(xiàn)了功能強(qiáng)大且實(shí)用的HTML5代碼。本書打破了HTML5在近幾年尚不可用的魔咒,深入講解了具有主流瀏覽器支持的API的使用方法,解答了我關(guān)于HTML5標(biāo)準(zhǔn)的許多疑問(wèn),建議每位熟悉HTML并想使用新標(biāo)準(zhǔn)的人員都閱讀本書。” ——某讀者
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
HTML5程序設(shè)計(jì)(第2版) PDF格式下載