前言
第1章 Web時代的變遷 1
1.1 迎接新的Web時代 1
1.1.1 HTML 5時代即將來臨 1
1.1.2 HTML 5的目標 3
1.2 HTML 5深受歡迎的理由 4
1.2.1 世界知名瀏覽器廠商對HTML 5的支持 4
1.2.2 第一個理由:時代的要求 5
1.2.3 第二個理由:Internet Explorer 8 5
1.3 可以放心使用HTML 5的三個理由 6
1.4 HTML 5要解決的三個問題 6
第2章 HTML 5與HTML 4的區彆 8
2.1 語法的改變 8
2.1.1 HTML 5的語法變化 8
2.1.2 HTML 5中的標記方法 9
2.1.3 HTML 5確保的兼容性 10
2.1.4 標記示例 11
2.2 新增的元素和廢除的元素 12
2.2.1 新增的結構元素 12
2.2.2 新增的其他元素 14
2.2.3 新增的input元素的類型 18
2.2.4 廢除的元素 19
2.3 新增的屬性和廢除的屬性 20
2.3.1 新增的屬性 20
2.3.2 廢除的屬性 22
2.4 全局屬性 23
2.4.1 contentEditable屬性 23
2.4.2 designMode屬性 24
2.4.3 hidden屬性 25
2.4.4 spellcheck屬性 25
2.4.5 tabindex屬性 25
2.5 新增的事件 26
第3章 HTML 5的結構 28
3.1 新增的主體結構元素 28
3.1.1 article元素 29
3.1.2 section元素 31
3.1.3 nav元素 33
3.1.4 aside元素 34
3.1.5 time元素與微格式 36
3.1.6 pubdate屬性 37
3.2 新增的非主體結構元素 38
3.2.1 header元素 38
3.2.2 footer元素 39
3.2.3 address元素 40
3.2.4 main元素 41
3.3 HTML 5中網頁結構 42
3.3.1 HTML 5中的大綱 42
3.3.2 大綱的編排規則 48
3.3.3 對新的結構元素使用樣式 51
第4章 錶單及其他新增和改良元素 53
4.1 新增元素與屬性 53
4.1.1 新增屬性 53
4.1.2 大幅度地增加與改良input元素的種類 65
4.1.3 對新的錶單元素使用樣式 77
4.1.4 output元素的追加 77
4.2 錶單驗證 78
4.2.1 自動驗證 78
4.2.2 取消驗證 79
4.2.3 顯式驗證 79
4.3 增強的頁麵元素 80
4.3.1 新增的f igure元素與f igcaption元素 80
4.3.2 新增的details元素與summary元素 82
4.3.3 新增的mark元素 83
4.3.4 新增的progress元素 86
4.3.5 新增的meter元素 87
4.3.6 新增的dialog元素 88
4.3.7 改良的a元素 90
4.3.8 改良的ol列錶 91
4.3.9 改良的dl列錶 92
4.3.10 加以嚴格限製的cite元素 93
4.3.11 重新定義的small元素 94
4.3.12 安全性增強的iframe元素 94
4.3.13 增強的script元素 97
第5章 繪製圖形 102
5.1 canvas元素的基礎知識 102
5.1.1 在頁麵中放置canvas元素 103
5.1.2 繪製矩形 103
5.2 使用路徑 105
5.2.1 繪製圓形 105
5.2.2 不關閉路徑會怎麼樣 108
5.2.3 繪製直綫 109
5.2.4 繪製麯綫 114
5.2.5 使用Path2D對象繪製路徑 116
5.3 繪製漸變圖形 119
5.3.1 繪製綫性漸變 119
5.3.2 繪製徑嚮漸變 121
5.4 繪製變形圖形 122
5.4.1 坐標變換 122
5.4.2 坐標變換與路徑的結閤使用 124
5.4.3 矩陣變換 125
5.5 給圖形繪製陰影 129
5.6 使用圖像 130
5.6.1 繪製圖像 130
5.6.2 圖像平鋪 133
5.6.3 圖像裁剪 135
5.6.4 像素處理 137
5.7 圖形、圖像的組閤與混閤 138
5.7.1 組閤圖形 138
5.7.2 混閤圖像 140
5.8 繪製文字 143
5.9 補充知識 145
5.9.1 保存與恢復狀態 145
5.9.2 保存文件 146
5.9.3 簡單動畫的製作 147
第6章多媒體相關API 150
6.1 多媒體播放 151
6.1.1 video元素與audio元素的基礎知識 151
6.1.2 屬性 153
6.1.3 方法 157
6.1.4 事件 160
6.2 對音頻或視頻添加字幕 163
6.2.1 track元素的基礎知識 163
6.2.2 track元素的各種屬性 164
6.2.3 WebVTT文件 166
第7章History API 171
7.1 History API的基本概念 171
7.2 History API使用示例 172
7.2.1 使用History API 172
7.2.2 結閤使用Canvas API與History API 182
第8章本地存儲 187
8.1 Web Storage 188
8.1.1 Web Storage是什麼 188
8.1.2 簡單Web留言本 191
8.1.3 作為簡易數據庫來利用 194
8.1.4 利用storage事件實時監視Web Storage中的數據 196
8.2 本地數據庫 199
8.2.1 本地數據庫的基本概念 199
8.2.2 用executeSql來執行查詢 199
8.2.3 使用數據庫實現Web留言本 200
8.2.4 transaction方法中的處理 204
8.3 indexedDB數據庫 206
8.3.1 indexedDB數據庫的基本概念 206
8.3.2 連接數據庫 206
8.3.3 數據庫的版本更新 208
8.3.4 創建對象倉庫 210
8.3.5 創建索引 213
8.3.6 索引的multiEntry屬性值 216
8.3.7 使用事務 216
8.3.8 保存數據 218
8.3.9 獲取數據 221
8.3.10 根據主鍵值檢索數據 225
8.3.11 根據索引屬性值檢索數據 232
8.3.12 復閤索引 237
8.3.13 統計對象倉庫中的數據數量 242
8.3.14 使用indexedDB API製作Web留言本 243
第9章離綫應用程序 250
9.1 離綫Web應用程序詳解 250
9.1.1 新增的本地緩存 250
9.1.2 本地緩存與瀏覽器網頁緩存的區彆 251
9.2 manifest文件 251
9.3 瀏覽器與服務器的交互過程 254
9.4 applicationCache對象 255
9.4.1 swapCache方法 255
9.4.2 applicationCache對象的事件 258
第10章文件API 261
10.1 FileList對象與file對象 262
10.2 ArrayBuffer對象與ArrayBufferView對象 263
10.2.1 基本概念 263
10.2.2 ArrayBuffer對象 263
10.2.3 ArrayBufferView對象 263
10.2.4 DataView對象 265
10.3 Blob對象 269
10.3.1 Blob對象概述 269
10.3.2 創建Blob對象 271
10.3.3 Blob對象的slice方法 274
10.3.4 在IndexedDB數據庫中保存Blob對象 275
10.4 FileReader對象 277
10.4.1 FileReader對象的方法 277
10.4.2 FileReader對象的事件 278
10.4.3 FileReader對象的使用示例 278
10.5 FileSystem API 285
10.5.1 FileSystem API概述 285
10.5.2 FileSystem API的適用場閤 286
10.5.3 請求訪問文件係統 287
10.5.4 申請磁盤配額 289
10.5.5 創建文件 294
10.5.6 寫入文件 297
10.5.7 在文件中追加數據 300
10.5.8 讀取文件 301
10.5.9 復製磁盤中的文件 304
10.5.10 刪除文件 306
10.5.11 創建目錄 307
10.5.12 讀取目錄中的內容 312
10.5.13 刪除目錄 314
10.5.14 復製文件或目錄 316
10.5.15 移動文件或目錄與重命名文件或目錄 319
10.5.16 filesystem:URL前綴 321
10.5.17 綜閤案例 325
10.6 Base64編碼支持 333
10.6.1 Base64編碼概述 333
10.6.2 在HTML 5中支持Base64編碼 335
第11章通信API 340
11.1 跨文檔消息傳輸 341
11.1.1 跨文檔消息傳輸的基本知識 341
11.1.2 跨文檔消息傳輸示例 341
11.1.3 通道通信 343
11.2 WebSockets通信 348
11.2.1 WebSockets通信的基本知識 348
11.2.2 使用WebSockets API 348
11.2.3 WebSockets API使用示例 349
11.2.4 發送對象 351
11.2.5 發送與接收原始二進製數據 352
11.2.6 實現WebSockets API的開發框架 353
11.2.7 WebSocket協議 354
11.2.8 WebSockets API的適用場景 354
11.3 Server-Sent Events API 354
11.3.1 Server-Sent Events API的基本概念 354
11.3.2 Server-Sent Events API的實現方法 355
11.3.3 事件ID的使用示例 362
第12章WebRTC通信 366
12.1 WebRTC的基本概念 366
12.2 使用getUserMedia方法訪問本地設備 367
12.2.1 瀏覽器檢測 367
12.2.2 獲取對視頻輸入設備或音頻輸入設備的訪問權限 368
12.2.3 實現拍照功能 370
12.2.4 與CSS 3結閤使用 372
12.3 手工建立WebRTC通信 372
12.3.1 WebRTC通信的基本概念 372
12.3.2 建立P2P通信 372
12.3.3 手工實現信令 373
12.3.4 剖析SDP交換過程 382
12.3.5 剖析ICE交換過程 388
12.4 穿越NAT/防火牆進行通信 390
12.4.1 穿越NAT 391
12.4.2 穿越防火牆 392
12.5 使用Node.js進行信令 395
12.5.1 建立信令服務器 395
12.5.2 修改信令處理 396
12.6 使用WebRTC進行多人通信 404
12.7 使用RTCDataChannel進行通信 425
12.7.1 RTCDataChannel的基本概念 425
12.7.2 實現RTCDataChannel通信 426
12.7.3 實現瀏覽器與瀏覽器之間的文件發送功能 438
第13章擴展的XMLHttpRequest API 449
13.1 從服務器端獲取二進製數據 449
13.1.1 ArrayBuffer響應 450
13.1.2 Blob響應 455
13.2 發送數據 456
13.2.1 發送字符串 457
13.2.2 發送錶單數據 458
13.2.3 上傳文件 461
13.2.4 發送Blob對象 462
13.2.5 發送ArrayBuffer對象 465
13.3 跨域數據請求 469
第14章使用Web Workers處理綫程 471
14.1 基礎知識 472
14.2 與綫程進行數據的交互 475
14.3 綫程嵌套 477
14.3.1 單層嵌套 477
14.3.2 在多個子綫程中進行數據的交互 480
14.4 綫程中可用的變量、函數與類 481
14.5 適用場閤 482
14.6 SharedWorker 482
14.6.1 基礎知識 482
14.6.2 實現前颱頁麵與後颱綫程之間的通信 483
14.6.3 定義頁麵與共享的後颱綫程開始通信時的處理 483
14.6.4 SharedWorker的使用示例 484
第15章獲取地理位置信息 490
15.1 Geolocation API的基本知識 490
15.1.1 取得當前地理位置 490
15.1.2 持續監視當前地理位置的信息 493
15.1.3 停止獲取當前用戶的地理位置信息 493
15.2 position對象 493
15.3 在頁麵上使用google地圖 495
第16章拖放API與通知API 498
16.1 拖放API 498
16.1.1 實現拖放的步驟 498
16.1.2 DataTransfer對象的屬性與方法 501
16.1.3 設定拖放時的視覺效果 502
16.1.4 自定義拖放圖標 503
16.2 通知API 503
16.2.1 通知API的基礎知識 503
16.2.2 通知API的代碼使用示例 506
第17章其他API 510
17.1 Page Visibility API 511
17.1.1 Page Visibility API概述 511
17.1.2 Page Visibility API的使用場閤 511
17.1.3 實現Page Visibility API 511
17.2 Fullscreen API 514
17.2.1 Fullscreen API概述 514
17.2.2 實現Fullscreen API 514
17.2.3 Fullscreen API代碼使用示例 517
17.3 鼠標指針鎖定API 519
17.3.1 鼠標指針鎖定API概述 519
17.3.2 鼠標指針鎖定API代碼使用示例 520
17.4 requestAnimationFrame 524
17.4.1 requestAnimationFrame概述 524
17.4.2 requestAnimFrame代碼使用示例 524
17.5 Mutation Observer 526
17.6 JavaScript Promise 531
17.6.1 Promise對象的基本概念 531
17.6.2 創建Promise對象 537
17.6.3 鏈式調用Promise對象的then方法 540
17.6.4 將異步操作隊列化 542
17.6.5 異常處理 543
17.6.6 創建序列 544
17.6.7 執行並行處理 549
17.7 Beacon API 550
17.7.1 Beacon API概述 550
17.7.2 Beacon API的使用方法 551
· · · · · · (
收起)