本書贊譽
譯者序
前言
第1章 漸進增強模型 / 1
1.1 漸進增強式網頁開發模型的定義 / 1
1.1.1 漸進增強式開發模型的曆史 / 2
1.1.2 漸進增強式開發模型的目標 / 3
1.1.3 易訪問性 / 4
1.1.4 代碼可讀性 / 4
1.1.5 漸進增強與平穩退化 / 4
1.2 結構層 / 5
1.3 錶現層 / 9
1.3.1 內聯css / 9
1.3.2 鏈接外部樣式錶 / 10
1.4 行為層 / 11
1.4.1 內聯javascript代碼 / 12
1.4.2 嵌入式javascript代碼 / 13
1.4.3 外聯式的低調javascript代碼 / 15
1.5 漸進增強式開發模型的好處 / 16
.1.5.1 性能 / 17
1.5.2 適應新趨勢 / 17
1.5.3 觸摸界麵 / 19
1.6 漸進增強模型結語 / 20
1.7 總結 / 20
1.8 習題 / 20
第2章 javascript語言在瀏覽器中的運用 / 21
2.1 javascript風雲錄 / 22
2.1.1 源起 / 22
2.1.2 漸進增強模型 / 24
2.1.3 行為層 / 25
2.1.4 javascript的未來 / 26
2.2 瀏覽器與javascript代碼的交互 / 26
2.2.1 http請求 / 27
2.2.2 javascript引擎與渲染引擎 / 31
2.3 javascript語言能做什麼 / 32
2.3.1 修改html文檔 / 32
2.3.2 與服務器通信 / 33
2.3.3 存儲數據 / 34
2.4 javascript的正確用法 / 34
2.4.1 改善用戶體驗 / 35
2.4.2 編寫可靠的javascript代碼 / 35
2.4.3 創建備用方案 / 37
2.5 javascript輔助開發工具 / 38
2.5.1 語言內置的工具 / 39
2.5.2 瀏覽器中的工具 / 40
2.6 總結 / 40
2.7 習題 / 41
第3章 javascript術語解析 / 42
3.1 基本術語 / 42
3.1.1 文檔對象模型(dom) / 42
3.1.2 父節點 / 43
3.1.3 子節點 / 43
3.1.4 兄弟節點 / 44
3.1.5 變量 / 44
3.1.6 字符串 / 46
3.1.7 注釋 / 46
3.1.8 操作符 / 47
3.1.9 use strict指令 / 48
3.2 數據存儲方式 / 48
3.2.1 緩存 / 48
3.2.2 數組 / 49
3.2.3 cookies / 49
3.2.4 javascript對象錶示法(json) / 50
3.2.5 對象 / 50
3.3 創建交互層 / 51
3.3.1 循環 / 51
3.3.2 條件語句 / 52
3.3.3 switch語句 / 53
3.3.4 函數 / 53
3.3.5 匿名函數 / 54
3.3.6 迴調函數 / 56
3.3.7 方法 / 56
3.3.8 事件 / 57
3.3.9 ajax / 58
3.4 總結 / 58
3.5 習題 / 59
第4章 操作文檔對象模型 / 60
4.1 文檔對象模型是什麼 / 60
4.2 dom結構樹 / 61
4.2.1 元素節點 / 62
4.2.2 文本節點 / 63
4.2.3 屬性節點 / 64
4.3 處理元素節點 / 66
4.3.1 根據id定位元素 / 66
4.3.2 根據標簽名稱定位元素 / 67
4.3.3 根據class屬性定位元素 / 70
4.3.4 在javascript中使用css選擇器來定位節點 / 71
4.4 處理屬性節點 / 73
4.4.1 獲取屬性 / 74
4.4.2 設置屬性 / 75
4.4.3 移除屬性 / 76
4.5 處理文本節點並修改其內容 / 76
4.6 遍曆dom / 77
4.6.1 訪問首尾兩個子節點 / 79
4.6.2 在dom中動態地添加和移除節點 / 80
4.6.3 嚮dom中新增元素 / 81
4.6.4 從dom中移除元素 / 82
4.7 總結 / 82
4.8 習題 / 83
第5章 javascript數據存儲 / 84
5.1 變量 / 84
5.1.1 字符串 / 85
5.1.2 數值 / 86
5.1.3 boolean / 87
5.1.4 與變量相關的性能問題 / 87
5.2 數組 / 88
5.2.1 基本數組 / 88
5.2.2 關聯數組 / 90
5.2.3 多維數組 / 90
5.2.4 嚮數組中新增數據 / 91
5.2.5 數組對象各方法的使用 / 92
5.3 join方法 / 92
5.4 slice方法 / 93
5.5 shift與unshift方法 / 94
5.6 pop方法 / 95
5.7 concat方法 / 95
5.8 sort方法 / 96
5.9 對象 / 96
5.10 json / 98
5.10.1 使用json格式的好處 / 99
5.10.2 調用api / 99
5.11 html5標準中的網絡數據存儲方式 / 100
5.12 setitem方法 / 101
5.13 getitem方法 / 102
5.14 removeitem方法 / 102
5.14.1 以json格式存放大量數據 / 103
5.14.2 編寫健壯的網絡存儲代碼 / 104
5.15 總結 / 104
5.16 習題 / 105
第6章 變量、函數及循環 / 106
6.1 定義變量 / 106
6.1.1 將變量集中到一起 / 107
6.1.2 保留字 / 107
6.2 函數 / 109
6.2.1 普通函數 / 109
6.2.2 匿名函數 / 110
6.3 作用域 / 111
6.3.1 迴調函數 / 112
6.3.2 返迴數據 / 113
6.3.3 將函數作為方法使用 / 115
6.4 循環 / 116
6.5 條件語句 / 119
6.5.1 if語句 / 120
6.5.2 if/else語句 / 121
6.5.3 switch語句 / 121
6.5.4 if與switch語句的對比 / 122
6.6 綜閤運用本章所學內容 / 123
6.7 總結 / 125
6.8 習題 / 125
第7章 以事件處理實現用戶交互 / 126
7.1 設置事件處理程序 / 127
7.1.1 事件處理器 / 128
7.1.2 事件監聽器 / 129
7.1.3 事件綁定 / 131
7.1.4 解除事件綁定 / 133
7.2 鼠標與鍵盤事件 / 133
7.2.1 click事件 / 136
7.2.2 focus與blur事件 / 138
7.2.3 易訪問性 / 139
7.2.4 change事件 / 139
7.2.5 mouseover與mouseout事件(處理鼠標懸停) / 140
7.2.6 submit事件 / 141
7.2.7 阻止瀏覽器的默認行為 / 143
7.2.8 keydown、keypress與keyup事件 / 144
7.2.9 本節代碼匯總 / 144
7.3 觸摸及方嚮變換事件 / 147
7.3.1 touchstart與touchend事件 / 148
7.3.2 touchmove事件 / 149
7.3.3 orientationchange事件 / 150
7.3.4 支持觸摸事件的設備 / 151
7.4 觸摸事件相關代碼匯總 / 151
7.5 總結 / 152
7.6 習題 / 153
第8章 通過ajax與服務器通信 / 154
8.1 ajax的曆史 / 155
8.1.1 服務器通信 / 156
8.1.2 xmlhttprequest對象 / 157
8.2 創建ajax調用 / 159
8.2.1 嚮服務器發送請求 / 160
8.2.2 接收服務器傳迴的數據 / 163
8.2.3 反復執行ajax調用 / 169
8.3 ajax數據格式 / 170
8.3.1 xml / 170
8.3.2 html / 172
8.3.3 json / 173
8.4 ajax的易訪問性 / 174
8.5 ajax常見誤區 / 176
8.6 本章代碼匯總 / 178
8.7 ajax的未來 / 182
8.8 總結 / 183
8.9 習題 / 184
第9章 代碼組織方式 / 185
9.1 通用代碼風格規範 / 186
9.1.1 作用域 / 187
9.1.2 在遇到錯誤時盡快終止 / 189
9.1.3 用戶體驗 / 191
9.2 代碼設計 / 191
9.2.1 文件與目錄結構 / 192
9.2.2 文檔內的腳本 / 193
9.2.3 變量聲明 / 194
9.2.4 變量與函數的命名 / 196
9.2.5 注釋 / 196
9.2.6 縮進 / 198
9.2.7 空格 / 199
9.2.8 語句內間隔 / 200
9.2.9 斷行 / 201
9.2.10 數學運算與操作符 / 202
9.2.11 eval()的用法 / 203
9.2.12 不宜製定過於死闆的代碼風格 / 205
9.3 代碼結構 / 206
9.3.1 函數 / 206
9.3.2 匿名函數 / 207
9.3.3 以變量形式齣現的函數 / 208
9.3.4 以方法形式齣現的函數 / 209
9.3.5 javascript開發模式 / 210
9.4 總結 / 214
9.5 習題 / 215
第10章 用程序庫更便捷地編寫javascript代碼 / 216
10.1 javascript程序庫基礎 / 217
10.1.1 程序庫的學習過程 / 218
10.1.2 語法 / 219
10.1.3 專注於目標 / 219
10.1.4 創造捷徑 / 220
10.1.5 解決瀏覽器兼容性問題 / 221
10.1.6 流行的程序庫 / 222
10.2 jquery基礎知識 / 227
10.2.1 document.ready / 229
10.2.2 選擇器 / 229
10.2.3 遍曆dom / 231
10.2.4 添加樣式信息 / 232
10.2.5 事件綁定 / 233
10.2.6 動畫 / 234
10.3 jquery中的非基礎知識 / 234
10.3.1 使用jquery庫執行ajax調用 / 235
10.3.2 用jquery遍曆數據 / 237
10.3.3 函數鏈 / 238
10.4 以插件擴展程序庫 / 240
10.5 使用程序庫的好處 / 242
10.5.1 流行度與社區支持度 / 242
10.5.2 高效代碼 / 244
10.6 使用程序庫的缺點 / 245
10.6.1 開銷 / 245
10.6.2 性能 / 245
10.6.3 對程序庫的過分依賴及其壽命問題 / 246
10.7 微型程序庫的使用 / 246
10.7.1 微型程序庫的優點 / 247
10.7.2 微型程序庫的缺點 / 248
10.8 總結 / 249
10.9 習題 / 249
第11章 html5 javascript api / 250
11.1 html5是什麼 / 251
11.2 新標記(新html元素) / 251
11.2.1 創建更好的語義 / 252
11.2.2 構建更易訪問的內容 / 252
11.3 javascript api / 255
11.3.1 navigator對象 / 255
11.3.2 地理位置api / 256
11.3.3 音頻與視頻 / 258
11.3.4 history api / 261
11.3.5 工作綫程 / 266
11.4 device api / 272
11.4.1 電池狀態api / 273
11.4.2 震動api / 275
11.4.3 網絡信息api / 276
11.5 通過功能檢測技術來嘗試新的api / 279
11.6 總結 / 280
11.7 習題 / 280
第12章 javascript深入研究指要 / 281
12.1 對關鍵知識點的簡要迴顧 / 282
12.1.1 漸進增強模型 / 282
12.1.2 操作dom / 283
12.1.3 數據存儲 / 285
12.1.4 服務器通信 / 287
12.2 適閤網站設計師的javascript研究方嚮 / 288
12.2.1 高級界麵設計 / 288
12.2.2 用javascript代碼操控css漸變效果 / 293
12.2.3 與桌麵操作係統交互 / 297
12.3 適閤網站開發者的javascript研究方嚮 / 302
12.3.1 javascript模闆 / 302
12.3.2 通過node.js庫以javascript語言實現服務器程序 / 308
12.4 總結 / 311
12.5 習題 / 311
參考答案 / 312
· · · · · · (
收起)