JavaScript RIA開發實戰

在HTML代碼的結束處引用JavaScript檔案 使用可重用的表單組件 使用可重用的脫機存儲組件

內容介紹

本書介紹如何採用最合理的方式為RIA編寫可靠的、易於維護的HTML、CSS和JavaScript代碼,以及如何使用Ajax技術在後台實現瀏覽器與Web伺服器的動態通信。本書將介紹您在構建Web應用程式時可能遇到的性能限制,以及如何以最佳的方式克服這些限制。此外,本書提供的提示可以使用戶界面回響更加靈敏。
本書也將介紹如何通過添加使用自定義字型的印刷標題、多媒體回放組件、自定義窗體控制項和動態繪圖功能改進RIA的用戶界面。此外還將演示如何在伺服器連線中斷時繼續運行Web應用程式,如何使用Ajax讀取存儲在二進制檔案中的隱藏數據,以及如何確保JavaScript Web應用程式中最高級別的可訪問性。

作品目錄

第I部分 最佳實踐
第1章 構建牢固的基礎 3
1.1 最佳實踐概述 3
1.1.1 確認最佳實踐的最佳性的人員 3
1.1.2 可以從最佳實踐中受益的人群 4
1.2 常規最佳實踐 5
1.2.1 定義項目目標 5
1.2.2 掌握基本規則 6
1.3 標記語言最佳實踐:語義HTML 12
1.3.1 學習HTML標籤 13
1.3.2 從文檔類型定義開始 14
1.3.3 XHTML擴展HTML的方式 16
1.3.4 實際使用最佳實踐 17
1.3.5 Web內容的可訪問性指導原則 25
1.4 格式化最佳實踐:CSS 27
1.4.1 像素完美再現設計的相關內容 27
1.4.2 W3C CSS標準 28
1.4.3 樣式表的指導原則 28
1.4.4 樣式的可訪問性指導原則 35
1.4.5 注釋塊 37
.1.4.6 瀏覽器迂迴方法 38
1.4.7 本地化考慮事項 38
1.5 結構化資料夾、檔案和有價值資源 39
1.5.1 易於閱讀的URL 39
1.5.2 檔案和資料夾命名 39
1.5.3 檔案編碼 40
1.5.4 組織有價值資源 40
1.6 設定開發環境 41
1.6.1 編寫檔案:集成開發環境 41
1.6.2 存儲檔案:版本控制系統 42
1.6.3 測試頁面:瀏覽器和開發工具 43
1.7 本章小結 44
第2章 面向富網際網路應用程式的JavaScript 45
2.1 編碼風格指導原則 45
2.1.1 使用一致的格式 45
2.1.2 使用大括弧和圓括弧 46
2.1.3 使用字母大小寫來增加含義 46
2.1.4 使用描述性的變數和函式名 47
2.1.5 維護簡短的函式塊 48
2.1.6 使用ScriptDoc將注釋變為評註 49
2.1.7 使用TODO標記剩餘的工作 50
2.2 專業水準的JavaScript編程 50
2.2.1 避免解決不存在的問題 50
2.2.2 使用文檔對象模型 51
2.2.3 動態更改CSS屬性 52
2.2.4 操作元素及其內容 52
2.2.5 不要將JavaScript和HTML混合 53
2.2.6 將樣式與代碼分離 53
2.2.7 連結函式調用 54
2.2.8 編寫健壯的代碼 54
2.2.9 記住對代碼進行本地化 56
2.3 面向對象的JavaScript 56
2.3.1 對象、類和構造函式 56
2.3.2 繼承:從現有的類創建新類 60
2.3.3 this關鍵字 62
2.3.4 訪問屬性和方法 64
2.3.5 對象字面值和JavaScript對象標記 65
2.3.6 創建名稱空間和層次結構 67
2.4 庫和架構 68
2.4.1 選擇庫 68
2.4.2 構建JavaScript庫 69
2.5 構建RIA 83
2.5.1 構造應用程式 83
2.5.2 管理兩組HTML 86
2.5.3 使用設計模式 86
2.6 測試和測試驅動的開發 92
2.7 使用第三方腳本 94
2.8 本章小結 95
第II部分 性能
第3章 理解Web瀏覽器 99
3.1 引擎:瀏覽器的動力室 99
3.1.1 呈現引擎和JavaScript引擎 99
3.1.2 JavaScript引擎的性能基準測試 100
3.2 Web頁面請求剖析 103
3.2.1 HTTP:Web背後的通信標準 103
3.2.2 HTTP狀態碼 108
3.2.3 訊息的傳輸機制 110
3.2.4 HTML頁面的載入順序 112
3.3 頁面性能 113
3.3.1 查看頁面的性能 113
3.3.2 找出性能的潛在瓶頸 114
3.4 本章小結 116
第4章 性能調整 117
4.1 性能是否確實是問題 117
4.2 對Web伺服器進行調整以獲得出色性能 118
4.2.1 對外部資源使用單獨域名 119
4.2.2 使用內容分發網路 119
4.2.3 以數據塊方式將HTML檔案傳送給瀏覽器 120
4.2.4 定製HTTP頭部以驅動瀏覽器快取 121
4.2.5 壓縮伺服器的輸出 123
4.3 對HTML頁面進行調整以獲得出色性能 124
4.3.1 利用HTML Tidy程式縮小HTML檔案的大小 124
4.3.2 在HTML代碼的結束處引用JavaScript檔案 125
4.3.3 減少HTTP請求的數量 126
4.3.4 不要載入來自主頁的每個資源 127
4.3.5 減少域名查找次數 127
4.3.6 跨域對組件進行拆分 128
4.3.7 避免連結到重定向 129
4.3.8 減少HTML元素的數量 129
4.3.9 不要連結至不存在的檔案 130
4.3.10 縮小HTTP cookie的大小 130
4.4 對樣式表進行調整以獲得出色性能 131
4.4.1 使用CSSTidy工具壓縮CSS檔案 131
4.4.2 不要使用@import命令 131
4.4.3 提高表布局的效率 131
4.4.4 在IE中避免使用CSS過濾器和表達式 132
4.4.5 使用簡碼值 132
4.4.6 使用CSS Sprite技術 136
4.4.7 避免低效的CSS選擇器 138
4.5 對圖像進行調整以獲得出色性能 139
4.5.1 理解圖像格式 140
4.5.2 最佳化PNG圖像 142
4.5.3 不要忘記favicon 142
4.6 對JavaScript代碼進行調整以獲得出色性能 142
4.6.1 使用Dojo ShrinkSafe壓縮JavaScript檔案 143
4.6.2 通過內容分發網路訪問JavaScript庫 143
4.6.3 時機就是一切 144
4.6.4 提升核心的JavaScript性能 145
4.6.5 提高Ajax性能 148
4.6.6 提高DOM性能 151
4.7 本章小結 156
第5章 欺騙性行為:可感知的回響性 157
5.1 提供快速的視覺反饋 157
5.1.1 選擇正確的時機 157
5.1.2 對超連結使用CSS偽類 158
5.1.3 讓用戶知道表單正在提交 159
5.1.4 更改滑鼠指針 159
5.1.5 使用Web 2.0樣式動畫指示器 160
5.1.6 顯示進度條 160
5.2 處理運行時間長的腳本 161
5.2.1 將運行時間長的腳本分割為代碼塊 162
5.2.2 使用定時器多次運行代碼塊 164
5.3 預測網站訪問者的需求 165
5.3.1 預先載入內容 165
5.3.2 高效載入導航層次 166
5.3.3 提前捕捉滑鼠單擊事件 167
5.4 本章小結 168
第III部分 表現
第6章 美麗的印刷字型 171
6.1 面臨的挑戰 171
6.2 字型的基本結構 172
6.3 給文本使用靜態圖像 172
6.4 為文本動態生成圖像 174
6.4.1 使用CSS直接嵌入字型檔 174
6.4.2 讓伺服器生成文本圖像 176
6.4.3 使用Flash生成使用自定義字型的文本 183
6.4.4 使用矢量圖生成文本 183
6.5 使用可重用的自定義字型組件 184
6.5.1 Text2PNG 184
6.5.2 Scalable Inman Flash Replacement組件 187
6.5.3 Facelift Image Replacement組件 190
6.5.4 Typeface.js組件 193
6.6 本章小結 194
第7章 多媒體回放 195
7.1 處理可訪問性 195
7.2 使用可重用的音頻回放組件 196
7.2.1 SoundManager組件 196
7.2.2 在沒有Flash的瀏覽器中播放音頻檔案 199
7.3 使用可重用的視頻回放組件 200
7.3.1 YouTube Chromeless Player 203
7.3.2 JW FLV Player 208
7.4 展望:HTML 5中的音頻和視頻 211
7.4.1 [audio]和[video]標籤 211
7.4.2 JavaScript API 212
7.4.3 當前採用情況 213
7.5 本章小結 213
第8章 表單控制項 215
8.1 自定義現有表單控制項 215
8.1.1 按鈕 215
8.1.2 文本欄位 219
8.1.3 檔案上傳控制項 220
8.2 添加新型表單控制項 223
8.2.1 用於日期選擇的日曆構件 224
8.2.2 滑塊控制項 241
8.3 使用可重用的表單組件 253
8.3.1 SWFUpload:包含進度條的多檔案上傳 254
8.3.2 TinyMCE:富文本編輯 258
8.4 驗證表單 260
8.5 本章小結 261
第9章 脫機存儲 263
9.1 使用cookie保存數據 263
9.1.1 創建cookie 263
9.1.2 cookie的不足之處 266
9.2 使用Internet Explorer的數據存儲 266
9.3 數據存儲API簡介 268
9.3.1 本地存儲API 269
9.3.2 Mozilla的全局存儲API 270
9.3.3 客戶端資料庫存儲API 271
9.4 使用Flash共享對象保存數據 275
9.5 創建跨瀏覽器的本地數據存儲API 277
9.6 使用可重用的脫機存儲組件 282
9.7 本章小結 282
第10章 二進制Ajax 283
10.1 純文本檔案與二進制檔案 283
10.2 使用Ajax讀取二進制檔案 283
10.3 從照片檔案中提取圖像數據 290
10.3.1 理解EXIF格式 290
10.3.2 使用JavaScript讀取EXIF數據 291
10.3.3 顯示檔案的EXIF數據 299
10.4 本章小結 303
第11章 在瀏覽器中繪製 305
11.1 創建可縮放矢量圖 305
11.1.1 創建SVG圖像檔案 306
11.1.2 在HTML中指定SVG 307
11.1.3 通過JavaScript指定SVG 308
11.2 使用矢量標記語言繪製 309
11.3 使用可重用繪圖庫構建動態圖形 310
11.4 使用HTML 5 [canvas]標籤 317
11.5 本章小結 319
第12章 富網際網路應用程式的可訪問性 321
12.1 迎合需求的用戶 321
12.1.1 使用輔助技術的用戶 321
12.1.2 移動設備用戶 321
12.1.3 不使用滑鼠的用戶 322
12.1.4 面向所有用戶的可訪問性 322
12.2 恰當地使用前進以及後退按鈕導航 323
12.3 設備無關的JavaScript 327
12.3.1 設備無關事件 327
12.3.2 設備無關事件委託 329
12.3.3 已更新內容提示以及焦點 330
12.4 Web頁面可訪問性倡議——無障礙富網際網路應用程式 333
12.4.1 角色 333
12.4.2 狀態以及特性 335
12.4.3 焦點管理 336
12.4.4 使用鍵盤與ARIA構件互動 336
12.4.5 WAI-ARIA示例 337
12.4.6 驗證 340
12.4.7 測試 341
12.5 本章小結 342

相關詞條

相關搜尋

熱門詞條

聯絡我們