《ScriptDOM高級程式設計》是2008年人民郵電出版社出版的圖書,作者是桑貝斯。本書注重理論與實踐的結合,全面講述高級的DOM腳本編程,適合有Web開發和設計經驗的讀者閱讀和參考。
基本介紹
- 書名:ScriptDOM高級程式設計
- 作者:桑貝斯
- ISBN: 9787115181091
- 頁數: 457
- 定價:¥59.00
- 出版社: 人民郵電出版社
- 出版時間:2008-7-1
- 開本:16開
編輯推薦,作者簡介,圖書目錄,圖書章節,
編輯推薦
全書分為3個部分:第一部分“深入理解DOM腳本編程”,涉及W3CDOM規範的各方面,包括非標準的瀏覽器支持和不支持的內容;第二部分“瀏覽器外部通信”,以Ajax和客戶端—伺服器端通信為主題;第三部分“部分高級腳本編程資源”,集中介紹了一批第三方腳本編程資源,包括庫和API。同時,每部分的最後一章都為案例研究,將學到的內容套用於實踐。通過學習全書內容,讀者將能構建起屬於自己的DOM實用方法庫。
本書深入淺出地講述了作為一名專業的Web開發人員(或者真正的高手)所必須了解和掌握的高級知識,是Web編程領域名副其實的扛鼎之作。書中對核心JavaScript原理的總結和概括、對最佳實踐的倡導和踐行、對DOM規範講解的提綱挈領、對瀏覽器外部通信(Ajax)的反思與解決之道、對Web 2.o rXJ容整合(Mashup)的分類與講說等,無一不折射出這本書是作者博觀約取、厚積薄發的心血力作。
與此同時,如果你也醉心於Prototype、jQuery、YUI、Ext等優秀的JavaScript庫,想見微知著地真正理解這些庫背後的工作原理,甚至希望創建自己的庫,那么這本書恰好適合你。
作者簡介
Jeffrey Sambells資深Web設計師和程式設計師。We—Create公司創始人之一暨研發總監。除本書外,他還與人合寫了Beginning Google MapsApplications with PHPand Ajax等著作。
圖書目錄
第一部分 深入理解DOM腳本編程
第1章 遵循最佳實踐
1.1 不唐突和漸進增強
1.2 讓JavaScript運行起來
1.2.1 把行為從結構中分離出來
1.2.2 不要版本檢測
1.2.3 通過平穩退化保證可訪問性
1.2.4 為重用命名空間而進行規劃
1.2.5 通過可重用的對象把事情簡化
1.2.6 一定要自己動手寫代碼
1.3 JavaScript語法中常見的陷阱
1.3.1 區分大小寫
1.3.2 單引號與雙引號
1.3.3 換行
1.3.4 可選的分號和花括弧
1.3.5 重載(並非真正的重載)
1.3.6 匿名函式
1.3.7 作用域解析和閉包
1.3.8 疊代對象
1.3.9 函式的調用和引用(不帶括弧)
1.4 實例:WYSIWYGJavaScript翻轉圖
1.5 小結
第2章 創建可重用的對象
2.1 對象中包含什麼
2.1.1 繼承
2.1.2 理解對象成員
2.1.3 window對象中的一切
2.1.4 理解作用域和閉包是根本
2.2 創建你自己的對象
2.2.1 一變多:創建構造函式
2.2.2 添加靜態方法
2.2.3 向原型中添加公有方法
2.2.4 公有、私有、特權和靜態成員真那么重要嗎
2.2.5 對象字面量
2.3 this是什麼
2.4 try{}、catch{}和異常處理
2.5 實例:你自己的調試日誌
2.5.1 為什麼需要JavaScript日誌對象
2.5.2 myLogger()對象
2.6 小結
第3章 DOM2核心和DOM2 HTML
3.1 DOM不是JavaScript,它是文檔
3.2 DOM的級別
3.2.1 DOM 0 級
3.2.2 DOM 1 級
3.2.3 DOM 2 級
3.2.4 DOM 3 級
3.2.5 哪個級別適合你
3.3 創建示例文檔
3.3.1 創建DOM檔案
3.3.2 選擇一個瀏覽器
3.4 DOM核心
3.4.1 繼承在DOM中的重要性
3.4.2 核心Node對象
3.4.3 核心Element對象
3.4.4 核心Document對象
3.4.5 遍歷和疊代DOM樹
3.5 DOM HTML
3.5.1 DOM2 HTML 的HTMLDocument對象
3.5.2 DOM2 HTML 的HTMLElement對象
3.6 實例:將手工HTML代碼轉換為DOM代碼
3.6.1 DOM生成工具的HTML檔案
3.6.2 使用示例HTML片段進行測試
3.6.3 擴充ADS庫
3.6.4 generateDOM對象的框架
3.7 小結
第4章 回響用戶操作和事件
4.1 DOM2級事件
4.2 事件的類型
4.2.1 對象事件
4.2.2 滑鼠移動事件
4.2.3 滑鼠單擊事件
4.2.4 鍵盤事件
4.2.5 表單相關的事件
4.2.6 針對W3C DOM的事件
4.2.7 自定義事件
4.3 控制事件流和註冊事件偵聽器
4.3.1 事件流
4.3.2 註冊事件
4.3.3 在事件偵聽器中訪問事件對象
4.3.4 跨瀏覽器的事件屬性和方法
4.4 小結
第5章 動態修改樣式和層疊樣式表
5.1 W3CDOM2樣式規範
5.1.1 CSSStyleSheet對象
5.1.2 CSSStyleRule對象
5.1.3 CSSStyleDeclaration對象
5.1.4 支持的匱乏
5.2 當DOM 腳本遇到樣式
5.3 把樣式置於DOM腳本之外
5.3.1 style屬性
5.3.2 基於className切換樣式
5.3.3 切換樣式表
5.3.4 修改CSS規則
5.4 訪問計算樣式
5.5 Microsoft的filter屬性
5.6 實例:簡單的漸變效果
5.7 小結
第6章 案例研究:圖像裁剪和縮放工具
6.1 測試檔案
6.2 imageEditor對象
6.2.1 調用imageEditor工具
6.2.2 imageEditor載入事件
6.2.3 創建編輯器標記和對象
6.2.4 向imageEditor對象添加事件偵聽器
6.2.5 縮放圖像
6.2.6 裁剪圖像
6.2.7 未完成的圖像編輯器
6.3 小結
第二部分 瀏覽器外部通信
第7章 向應用程式中加入Ajax
7.1 組合的技術
7.1.1 語義化XHTML和DOM
7.1.2 JavaScript和XMLHttpRequest對象
7.1.3 XML
7.1.4 一個可重用的對象
7.1.5 Ajax是正確的選擇嗎
7.2 為什麼Ajax會破壞網站及如何解決
7.2.1 依賴JavaScript生成內容
7.2.2 通過script標籤繞過跨站點限制
7.2.3 後退按鈕和書籤功能
7.2.4 完成請求的賽跑
7.2.5 增加資源占用
7.2.6 問題解決了嗎
7.3 實例:Ajax增強的相冊
7.4 小結
第8章 案例研究:實現帶進度條的異步檔案上傳功能
8.1 信息載入時的小生命
8.2 起點
8.3 完成整合:上傳進度指示器
8.3.1 addProgressBar()對象的結構
8.3.2 載入事件
8.3.3 addProgressBar()對象
8.4 小結
第三部分 部分高級腳本編程資源
第9章 通過庫來提高生產力
9.1 選擇合適的庫
9.2 增強DOM操作能力
9.2.1 連綴語法
9.2.2 通過回調函式進行過濾
9.2.3 操縱DOM文檔
9.3 處理事件
9.3.1 註冊事件
9.3.2 自定義事件
9.4 訪問和操縱樣式
9.5 通信
9.6 小結
第10章 添加效果增強用戶體驗
10.1 自己動手實現效果
10.1.1 讓我看到內容
10.1.2 提供反饋
10.2 幾個視覺效果庫簡介
10.3 視覺盛宴
10.3.1 MOO式的CSS屬性修改
10.3.2 通過Script.aculo.us實現視覺效果
10.3.3 通過Moo.fx實現逼真的運動效果
10.3.4 圓角效果
10.3.5 其他庫
10.4 行為增強
10.5 小結
第11章 豐富的Mashup!運用API添加地圖、搜尋及更多功能
11.1 API密鑰
11.2 客戶端API:離不開JavaScript
11.2.1 地圖中的Mashup套用
11.2.2 Ajax搜尋請求
11.2.3 地圖與搜尋的Mashup套用
11.3 伺服器端API:需要代理腳本
11.3.1 通過Basecamp構建集成的To-Do列表
11.3.2 通過Flickr取得個性頭像
11.4 小結
第12章 案例研究:用DOM設計選擇列表
12.1 經典的感覺
12.2 構建更好的選擇列表
12.3 策略?我們不需要臭哄哄的策略
12.3.1 相關的檔案
12.3.2 FauxSelect對象
12.3.3 開始創建人造select元素
12.3.4 查找select元素
12.3.5 構建DOM元素
12.4 添加事件——為人造select賦予生命
12.5 讓表單綻放光彩
12.6 行為修正
12.6.1 z-index來救急
12.6.2 鍵盤控制及其他細節
12.6.3 select太大了嗎
12.7 最後的細節
12.8 繼續替換select的冒險
12.9 小結
圖書章節
第一章 遵循最佳實踐
你很興奮,你的客戶也很興奮。你剛剛為客戶安裝啟用了新版的網站,一切都很順利。網站很花哨,它歷經了數小時汗水和淚水的澆灌,每一處設計細節——擴展式選單、互動的Aiax都精心調試過,所有新式花樣無所不包。它看上去很不錯,運行得也很完美,所有人都沉浸在喜悅中。然而,一周之後,噩夢開始了。客戶慌裡慌張地打來電話,好像是據他們的部分顧客來電話反應說主頁上的連結打不開了,而另外一些顧客在填寫反饋表單時也碰到了問題。但在你和你的客戶那裡卻不存在這些的問題。還有一些人也打來電話,抱怨下載網站的每一個頁面都要等很長時間,即使看上去網頁內容並不很多,而你從來沒有發現下載時間有問題。更糟糕的是,隨後,你客戶發現網站在搜尋引擎中的排名一落千丈。看來事情沒有想像的那么樂觀,但問題出在哪裡
呢?下面我們就一起來查找原因。
最佳實踐是人們做事時應該遵循的、被公認和經過驗證的模式。雖然不一定是唯一的,甚至不是最佳的方式,但這些方式是大多數人認同的做事方式。一般的書在最後部分會提到一些最佳實踐,這更多地是一種提示,即在你已學會了每件事並按自己的方式行事時,告訴你還會有一種最適當的方式。我之所以把最佳實踐放在前面來講,就是為了讓你在開始學習新知識之前,先明確正確的方向。如果有陽關大道,那又何必去走獨木橋呢?
1.1 不唐突和漸進增強
XHTML(ExteIlsibleHyperext Markup Laneuaee,可擴展超文本標記語言)、CSS(Cascading StyleSheet,層疊樣式表)和使用JaVaScript的DOM(DocumentObjectModel,文檔對象模型)腳本是Web設計的三個主要部分。其中,XHTML用於提供文檔結構的語義標記,CSS為文檔布局提供定位和樣式,而DOM腳本編程用於增強文檔的行為和互動性。發現了嗎?我剛才說DOM腳本“增強”,而不是為文檔“提供”行為和互動性。“增強”和“提供”之間的差異暗示了一個重要區別。我們都學過XHTML語義,知道驗證文檔是否符合w3c規範,而且也都在用CSS來為嚴格型XHTML文檔標記套用適當的樣式(對吧?)。但是,作為第三個主要部分的DOM腳本,雖然它可以把事情做得格外漂亮,為我們的wleb應用程式增光添彩,卻有可能是一個唐突的傢伙。DOM腳本編程依賴於JavaScript。