出版時(shí)間:2008-7 出版社:人民郵電出版社 作者:Jeffrey Sambells,Aaron Gustafson 頁數(shù):457 譯者:李松峰,李雅雯
Tag標(biāo)簽:無
內(nèi)容概要
《圖靈程序設(shè)計(jì)從書:JavaScript DOM高級程序設(shè)計(jì)》注重理論與實(shí)踐的結(jié)合,全面講述高級的DOM腳本編程?!秷D靈程序設(shè)計(jì)從書:JavaScript DOM高級程序設(shè)計(jì)》分為3個(gè)部分:第一部分“深入理解DOM腳本編程”,涉及W3C DOM規(guī)范的各方面,包括非標(biāo)準(zhǔn)的瀏覽器支持和不支持的內(nèi)容;第二部分“瀏覽器外部通信”,以Ajax和客戶端—服務(wù)器端通信為主題;第三部分“部分高級腳本編程資源”,集中介紹了一批第三方腳本編程資源,包括庫和API。同時(shí),每部分的最后一章都為案例研究,將學(xué)到的內(nèi)容應(yīng)用于實(shí)踐。通過學(xué)習(xí)全書內(nèi)容,讀者將能構(gòu)建起屬于自己的DOM實(shí)用方法庫。
作者簡介
Jeffrey Sambells,資深Web設(shè)計(jì)師和程序員,We-Create公司創(chuàng)始人之一暨研發(fā)總監(jiān)。除本書外,他還與人合寫了Beginning Google Maps Applications with PHP and Ajax等著作。 Aaron Gustafson,世界頂尖的Web工程師,創(chuàng)建了Web咨詢公司Easy!Designs LLC.。Aaron是WaSP(Web標(biāo)準(zhǔn)項(xiàng)目)和GAWDS(可訪問性Web設(shè)計(jì)協(xié)會(huì))的成員。他還是A List Apart網(wǎng)站的技術(shù)編輯,Digital Web Magazine和MSDN等著名雜志的撰稿人。
書籍目錄
第一部分 深入理解DOM腳本編程第1章 遵循最佳實(shí)踐1.1 不唐突和漸進(jìn)增強(qiáng)1.2 讓JavaScript運(yùn)行起來1.2.1 把行為從結(jié)構(gòu)中分離出來1.2.2 不要版本檢測1.2.3 通過平穩(wěn)退化保證可訪問性1.2.4 為重用命名空間而進(jìn)行規(guī)劃1.2.5 通過可重用的對象把事情簡化1.2.6 一定要自己動(dòng)手寫代碼1.3 JavaScript語法中常見的陷阱1.3.1 區(qū)分大小寫1.3.2 單引號與雙引號1.3.3 換行1.3.4 可選的分號和花括號1.3.5 重載(并非真正的重載)1.3.6 匿名函數(shù)1.3.7 作用域解析和閉包1.3.8 迭代對象1.3.9 函數(shù)的調(diào)用和引用(不帶括號)1.4 實(shí)例:WYSIWYGJavaScript翻轉(zhuǎn)圖1.5 小結(jié)第2章 創(chuàng)建可重用的對象2.1 對象中包含什么2.1.1 繼承2.1.2 理解對象成員2.1.3 window對象中的一切2.1.4 理解作用域和閉包是根本2.2 創(chuàng)建你自己的對象2.2.1 一變多:創(chuàng)建構(gòu)造函數(shù)2.2.2 添加靜態(tài)方法2.2.3 向原型中添加公有方法2.2.4 公有、私有、特權(quán)和靜態(tài)成員真那么重要嗎2.2.5 對象字面量2.3 this是什么2.4 try{}、catch{}和異常處理2.5 實(shí)例:你自己的調(diào)試日志2.5.1 為什么需要JavaScript日志對象2.5.2 myLogger()對象2.6 小結(jié)第3章 DOM2核心和DOM2 HTML3.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 哪個(gè)級別適合你3.3 創(chuàng)建示例文檔3.3.1 創(chuàng)建DOM文件3.3.2 選擇一個(gè)瀏覽器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 HTML3.5.1 DOM2 HTML 的HTMLDocument對象3.5.2 DOM2 HTML 的HTMLElement對象3.6 實(shí)例:將手工HTML代碼轉(zhuǎn)換為DOM代碼3.6.1 DOM生成工具的HTML文件3.6.2 使用示例HTML片段進(jìn)行測試3.6.3 擴(kuò)充ADS庫3.6.4 generateDOM對象的框架3.7 小結(jié)第4章 響應(yīng)用戶操作和事件4.1 DOM2級事件4.2 事件的類型4.2.1 對象事件4.2.2 鼠標(biāo)移動(dòng)事件4.2.3 鼠標(biāo)單擊事件4.2.4 鍵盤事件4.2.5 表單相關(guān)的事件4.2.6 針對W3C DOM的事件4.2.7 自定義事件4.3 控制事件流和注冊事件偵聽器4.3.1 事件流4.3.2 注冊事件4.3.3 在事件偵聽器中訪問事件對象4.3.4 跨瀏覽器的事件屬性和方法4.4 小結(jié)第5章 動(dòng)態(tài)修改樣式和層疊樣式表5.1 W3CDOM2樣式規(guī)范5.1.1 CSSStyleSheet對象5.1.2 CSSStyleRule對象5.1.3 CSSStyleDeclaration對象5.1.4 支持的匱乏5.2 當(dāng)DOM 腳本遇到樣式5.3 把樣式置于DOM腳本之外5.3.1 style屬性5.3.2 基于className切換樣式5.3.3 切換樣式表5.3.4 修改CSS規(guī)則5.4 訪問計(jì)算樣式5.5 Microsoft的filter屬性5.6 實(shí)例:簡單的漸變效果5.7 小結(jié)第6章 案例研究:圖像裁剪和縮放工具6.1 測試文件6.2 imageEditor對象6.2.1 調(diào)用imageEditor工具6.2.2 imageEditor載入事件6.2.3 創(chuàng)建編輯器標(biāo)記和對象6.2.4 向imageEditor對象添加事件偵聽器6.2.5 縮放圖像6.2.6 裁剪圖像6.2.7 未完成的圖像編輯器6.3 小結(jié)第二部分 瀏覽器外部通信第7章 向應(yīng)用程序中加入Ajax7.1 組合的技術(shù)7.1.1 語義化XHTML和DOM7.1.2 JavaScript和XMLHttpRequest對象7.1.3 XML7.1.4 一個(gè)可重用的對象7.1.5 Ajax是正確的選擇嗎7.2 為什么Ajax會(huì)破壞網(wǎng)站及如何解決7.2.1 依賴JavaScript生成內(nèi)容7.2.2 通過script標(biāo)簽繞過跨站點(diǎn)限制7.2.3 后退按鈕和書簽功能7.2.4 完成請求的賽跑7.2.5 增加資源占用7.2.6 問題解決了嗎7.3 實(shí)例:Ajax增強(qiáng)的相冊7.4 小結(jié)第8章 案例研究:實(shí)現(xiàn)帶進(jìn)度條的異步文件上傳功能8.1 信息載入時(shí)的小生命8.2 起點(diǎn)8.3 完成整合:上傳進(jìn)度指示器8.3.1 addProgressBar()對象的結(jié)構(gòu)8.3.2 載入事件8.3.3 addProgressBar()對象8.4 小結(jié)第三部分 部分高級腳本編程資源第9章 通過庫來提高生產(chǎn)力9.1 選擇合適的庫9.2 增強(qiáng)DOM操作能力9.2.1 連綴語法9.2.2 通過回調(diào)函數(shù)進(jìn)行過濾9.2.3 操縱DOM文檔9.3 處理事件9.3.1 注冊事件9.3.2 自定義事件9.4 訪問和操縱樣式9.5 通信9.6 小結(jié)第10章 添加效果增強(qiáng)用戶體驗(yàn)10.1 自己動(dòng)手實(shí)現(xiàn)效果10.1.1 讓我看到內(nèi)容10.1.2 提供反饋10.2 幾個(gè)視覺效果庫簡介10.3 視覺盛宴10.3.1 MOO式的CSS屬性修改10.3.2 通過Script.aculo.us實(shí)現(xiàn)視覺效果10.3.3 通過Moo.fx實(shí)現(xiàn)逼真的運(yùn)動(dòng)效果10.3.4 圓角效果10.3.5 其他庫10.4 行為增強(qiáng)10.5 小結(jié)第11章 豐富的Mashup!運(yùn)用API添加地圖、搜索及更多功能11.1 API密鑰11.2 客戶端API:離不開JavaScript11.2.1 地圖中的Mashup應(yīng)用11.2.2 Ajax搜索請求11.2.3 地圖與搜索的Mashup應(yīng)用11.3 服務(wù)器端API:需要代理腳本11.3.1 通過Basecamp構(gòu)建集成的To-Do列表11.3.2 通過Flickr取得個(gè)性頭像11.4 小結(jié)第12章 案例研究:用DOM設(shè)計(jì)選擇列表12.1 經(jīng)典的感覺12.2 構(gòu)建更好的選擇列表12.3 策略?我們不需要臭哄哄的策略12.3.1 相關(guān)的文件12.3.2 FauxSelect對象12.3.3 開始創(chuàng)建人造select元素12.3.4 查找select元素12.3.5 構(gòu)建DOM元素12.4 添加事件——為人造select賦予生命12.5 讓表單綻放光彩12.6 行為修正12.6.1 z-index來救急12.6.2 鍵盤控制及其他細(xì)節(jié)12.6.3 select太大了嗎12.7 最后的細(xì)節(jié)12.8 繼續(xù)替換select的冒險(xiǎn)12.9 小結(jié)
章節(jié)摘錄
第一章 遵循最佳實(shí)踐 你很興奮,你的客戶也很興奮。你剛剛為客戶安裝啟用了新版的網(wǎng)站,一切都很順利。網(wǎng)站很花哨,它歷經(jīng)了數(shù)小時(shí)汗水和淚水的澆灌,每一處設(shè)計(jì)細(xì)節(jié)——擴(kuò)展式菜單、交互的Aiax都精心調(diào)試過,所有新式花樣無所不包。它看上去很不錯(cuò),運(yùn)行得也很完美,所有人都沉浸在喜悅中。然而,一周之后,噩夢開始了。客戶慌里慌張地打來電話,好像是據(jù)他們的部分顧客來電話反應(yīng)說主頁上的鏈接打不開了,而另外一些顧客在填寫反饋表單時(shí)也碰到了問題。但在你和你的客戶那里卻不存在這些的問題。還有一些人也打來電話,抱怨下載網(wǎng)站的每一個(gè)頁面都要等很長時(shí)間,即使看上去網(wǎng)頁內(nèi)容并不很多,而你從來沒有發(fā)現(xiàn)下載時(shí)間有問題。更糟糕的是,隨后,你客戶發(fā)現(xiàn)網(wǎng)站在搜索引擎中的排名一落千丈??磥硎虑闆]有想象的那么樂觀,但問題出在哪里 呢?下面我們就一起來查找原因?! ∽罴褜?shí)踐是人們做事時(shí)應(yīng)該遵循的、被公認(rèn)和經(jīng)過驗(yàn)證的模式。雖然不一定是唯一的,甚至不是最佳的方式,但這些方式是大多數(shù)人認(rèn)同的做事方式。一般的書在最后部分會(huì)提到一些最佳實(shí)踐,這更多地是一種提示,即在你已學(xué)會(huì)了每件事并按自己的方式行事時(shí),告訴你還會(huì)有一種最適當(dāng)?shù)姆绞?。我之所以把最佳?shí)踐放在前面來講,就是為了讓你在開始學(xué)習(xí)新知識之前,先明確正確的方向。如果有陽關(guān)大道,那又何必去走獨(dú)木橋呢? 1.1 不唐突和漸進(jìn)增強(qiáng) XHTML(ExteIlsibleHyperext Markup Laneuaee,可擴(kuò)展超文本標(biāo)記語言)、CSS(Cascading StyleSheet,層疊樣式表)和使用JaVaScript的DOM(DocumentObjectModel,文檔對象模型)腳本是Web設(shè)計(jì)的三個(gè)主要部分。其中,XHTML用于提供文檔結(jié)構(gòu)的語義標(biāo)記,CSS為文檔布局提供定位和樣式,而DOM腳本編程用于增強(qiáng)文檔的行為和交互性。發(fā)現(xiàn)了嗎?我剛才說DOM腳本“增強(qiáng)”,而不是為文檔“提供”行為和交互性。“增強(qiáng)”和“提供”之間的差異暗示了一個(gè)重要區(qū)別。我們都學(xué)過XHTML語義,知道驗(yàn)證文檔是否符合w3c規(guī)范,而且也都在用CSS來為嚴(yán)格型XHTML文檔標(biāo)記應(yīng)用適當(dāng)?shù)臉邮剑▽Π??)。但是,作為第三個(gè)主要部分的DOM腳本,雖然它可以把事情做得格外漂亮,為我們的wleb應(yīng)用程序增光添彩,卻有可能是一個(gè)唐突的家伙。DOM腳本編程依賴于JavaScript。
編輯推薦
“本書是一本全景式的、溝通歷史和未來的Web開發(fā)經(jīng)典好書。是對現(xiàn)有JavaScript DoM程序開發(fā)最佳實(shí)踐的一次大檢閱和大放送,是推動(dòng)Web標(biāo)準(zhǔn)化和向下一代Web開發(fā)挺進(jìn)的里程碑式著作?!薄 緯g者 “如果你是一位中級JavaScript人員,還想更上一層樓,那么這將是使你夢想成真的絕妙好書。” ——DOMAssistant庫的作者Robert Nyman 本書深入淺出地講述了作為一名專業(yè)的Web開發(fā)人員(或者真正的高手)所必須了解和掌握的高級知識,是Web編程領(lǐng)域名副其實(shí)的扛鼎之作。書中對核心JavaScript原理的總結(jié)和概括、對最佳實(shí)踐的倡導(dǎo)和踐行、對DOM規(guī)范講解的提綱挈領(lǐng)、對瀏覽器外部通信(Ajax)的反思與解決之道、對Web 2.o rXJ容整合(Mashup)的分類與講說等,無一不折射出這本書是作者博觀約取、厚積薄發(fā)的心血力作?! ∨c此同時(shí),如果你也醉心于Prototype、jQuery、YUI、Ext等優(yōu)秀的JavaScript庫,想見微知著地真正理解這些庫背后的工作原理,甚至希望創(chuàng)建自己的庫,那么這本書恰好適合你。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
JavaScript DOM高級程序設(shè)計(jì) PDF格式下載