出版時間:2008-9 出版社:陳華 清華大學(xué)出版社 (2008-09出版) 作者:陳華 頁數(shù):624
前言
隨著Web應(yīng)用的不斷深入,用戶對Web應(yīng)用程序提出了更高的要求。在這種情況下,Ajax技術(shù)應(yīng)運而生,并引領(lǐng)了一陣Web 2.0的風(fēng)潮。Ajax技術(shù)本身并不是新的技術(shù),而是對已有的成熟技術(shù)的整合應(yīng)用,并提出了Web開發(fā)的新思路。當(dāng)前Ajax技術(shù)已經(jīng)得到廣泛的應(yīng)用,并被用戶所推崇,這也對Web開發(fā)工作者提出了更高的要求。掌握Ajax風(fēng)格的Web應(yīng)用程序開發(fā)技術(shù)成為每一個Web開發(fā)工作者的當(dāng)務(wù)之急。Ajax的核心技術(shù)由XMLHttpRequest、JavaScript、XML、HTML及CSS等組成。本書假定讀者已經(jīng)具備一定基礎(chǔ)的HTML和CSS技能,著重向讀者介紹JavaScript的基礎(chǔ)知識和高級技巧、XMLHttpRequest對象的使用、數(shù)據(jù)的組織(XML和JSON)、Ajax開發(fā)模式、常見問題及解決方案以及最流行的Ajax開發(fā)框架等內(nèi)容,涵蓋了Ajax技術(shù)從入門到精通需要的大部分知識。
內(nèi)容概要
《Ajax從入門到精通》從開發(fā)Ajax應(yīng)用所需要具備的基本能力開始,逐步深入地向讀者介紹JavaScript的基本知識、高級技巧、開發(fā)工具的使用、開發(fā)框架的介紹、瀏覽器兼容性的問題、調(diào)試技巧、Ajax應(yīng)用程序的組成、不同的數(shù)據(jù)組織方式,以及開發(fā)過程中經(jīng)常會遇到的問題,并對Ajax應(yīng)用程序的架構(gòu)進(jìn)行了探討,是一本全面的、適合各種水平層次的讀者閱讀和學(xué)習(xí)的教程。 《Ajax從入門到精通》作為比較全面的Ajax教程書籍,涵蓋了基本語言介紹(JavaScript)、DHTML技術(shù)(DOM)、Ajax技術(shù)核心知識、面向?qū)ο蟮腏avaScript、數(shù)據(jù)組織方式(XML和JSON)等知識,并對開發(fā)工具和調(diào)試技巧以及流行的應(yīng)用框架進(jìn)行了介紹。尤其是《Ajax從入門到精通》的第10-15章,介紹了Ajax的高級技術(shù),包括對XML和JSON的深入介紹,以及對Ajax應(yīng)用程序架構(gòu)的探討、JavaScript面向?qū)ο缶幊痰募记傻??! 禔jax從入門到精通》對于PHP、ASP、Java、.NET程序員有很大的幫助,同時適合Web前端開發(fā)人員、Web性能檢測人員、需要掌握Ajax技術(shù)的測試人員、Web架構(gòu)師、學(xué)習(xí)Web高級技術(shù)的初級程序員以及所有的Web普通開發(fā)人員作為必備參考用書使用。
書籍目錄
第1篇 準(zhǔn)備篇第1章 什么是Ajax1.1 Ajax概述1.1.1 關(guān)鍵技術(shù):XMLHttpRequest1.1.2 Ajax名詞的由來1.2 經(jīng)典案例1:搜索關(guān)鍵詞建議系統(tǒng)(Google Suggest)1.3 經(jīng)典案例2:優(yōu)秀的電子郵件服務(wù)系統(tǒng)(Gmail)1.3.1 注冊Gmail1.3.2 Gmail主界面1.3.3 Inbox(收件箱)工作區(qū)域1.3.4 Web Clip(網(wǎng)絡(luò)剪輯)1.3.5 郵件操作區(qū)域1.3.6 操作郵件1.4 第一個Ajax應(yīng)用程序:Hello World!1.5 小結(jié)第2篇 Ajax技術(shù)構(gòu)成篇第2章 JavaScript:Ajax的開發(fā)語言2.1 JavaScript概述2.1.1 對JavaScript的誤解2.1.2 JavaScript的版本2.2 數(shù)據(jù)類型和值2.2.1 數(shù)字2.2.2 字符串2.2.3 布爾值2.2.4 函數(shù)2.2.5 對象2.2.6 數(shù)組2.2.7 null值2.2.8 undefined值2.3 JavaScript的變量2.3.1 變量的類型2.3.2 變量的聲明2.3.3 變量的作用域2.3.4 基本類型和引用類型2.4 表達(dá)式和運算符2.4.1 表達(dá)式2.4.2 算術(shù)運算符2.4.3 相等運算符2.4.4 關(guān)系運算符2.4.5 賦值運算符2.4.6 邏輯運算符2.4.7 字符串運算符2.4.8 其他運算符2.5 語句2.5.1 聲明變量:var語句2.5.2 流程控制:if語句2.5.3 流程控制:else if語句2.5.4 流程控制:switch語句2.5.5 循環(huán):while語句2.5.6 循環(huán):do/while語句2.5.7 循環(huán):for語句2.5.8 遍歷:for/in語句2.5.9 控制語句:break語句2.5.10 控制語句:continue語句2.5.11 函數(shù)語句:function語句2.5.12 函數(shù)返回值:return語句2.5.13 拋出異常:throw語句2.5.14 異常處理:try/catch/finally語句2.5.15 空語句2.6 JavaScript的函數(shù)2.6.1 函數(shù)的定義和調(diào)用2.6.2 實際參數(shù)列表:arguments屬性的使用2.7 大小寫敏感性2.8 JavaScript的注釋2.9 JavaScript的保留字第3章 JavaScript的常用對象3.1 保存多個數(shù)據(jù)元素的容器:Array對象3.1.1 數(shù)組的創(chuàng)建3.1.2 得到數(shù)組的長度3.1.3 添加、刪除和替換數(shù)組元素3.1.4 得到數(shù)組片段3.1.5 反轉(zhuǎn)數(shù)組3.1.6 將數(shù)組轉(zhuǎn)換成字符串3.1.7 數(shù)組元素的排序3.2 字符串的處理:String對象3.2.1 獲取字符串的長度3.2.2 字符串的截取3.2.3 字符串的替換3.2.4 大小寫轉(zhuǎn)換3.2.5 將字符串轉(zhuǎn)換成數(shù)組3.2.6 拼接字符串的優(yōu)化方法3.3 正則表達(dá)式:RegExp對象3.3.1 創(chuàng)建正則表達(dá)式3.3.2 正則表達(dá)式的語法規(guī)則3.3.3 正則表達(dá)式的屬性3.3.4 用于模式匹配的String方法3.3.5 用于模式匹配的RegExp方法3.3.6 常用正則表達(dá)式3.4 日期和時間:Date對象3.4.1 Date對象的創(chuàng)建3.4.2 讀取和設(shè)置日期及時間的各個部分3.4.3 日期和時間的換算3.5 復(fù)雜的數(shù)學(xué)運算:Math對象3.5.1 小數(shù)的取整3.5.2 得到隨機數(shù)3.5.3 冪運算3.5.4 最大值和最小值3.6 操作瀏覽器窗口:window對象3.6.1 使用對話框3.6.2 改變窗口狀態(tài)欄的信息3.6.3 延遲執(zhí)行和定時執(zhí)行3.6.4 URL的獲取和跳轉(zhuǎn)3.6.5 歷史記錄的前進(jìn)和后退3.6.6 控制窗口的大小和位置3.6.7 打開和關(guān)閉窗口3.6.8 獲得焦點和失去焦點3.6.9 取得用戶顯示器的信息3.6.10 取得用戶瀏覽器的信息3.7 操作HTML文檔:document對象3.7.1 文檔的輸出3.7.2 文檔的標(biāo)題3.7.3 文檔的圖像3.7.4 文檔的超鏈接3.7.5 文檔的表單3.8 應(yīng)用實例3.8.1 在網(wǎng)頁上顯示自動更新的日期和時間3.8.2 一個簡單的小游戲:Lucky Seven(幸運7)3.9 小結(jié)第4章 DOM文檔對象模型介紹4.1 基本概念4.1.1 樹形結(jié)構(gòu)4.1.2 結(jié)點的類型和組成4.1.3 結(jié)點之間的關(guān)系4.2 結(jié)點的引用4.2.1 根據(jù)id屬性引用結(jié)點4.2.2 根據(jù)name屬性引用結(jié)點4.2.3 根據(jù)標(biāo)簽名引用結(jié)點4.2.4 引用父結(jié)點4.2.5 引用子結(jié)點4.2.6 引用相鄰的結(jié)點4.3 結(jié)點的操作4.3.1 創(chuàng)建元素結(jié)點4.3.2 創(chuàng)建文本結(jié)點4.3.3 添加結(jié)點4.3.4 插入子結(jié)點4.3.5 替換子結(jié)點4.3.6 復(fù)制結(jié)點4.3.7 刪除子結(jié)點4.3.8 讀取結(jié)點屬性4.3.9 添加和修改屬性結(jié)點4.3.10 刪除屬性結(jié)點4.4 控制元素的樣式4.4.1 獲取和設(shè)置元素的css類4.4.2 獲取和設(shè)置元素樣式4.5 事件處理4.5.1 事件模型和傳播機制4.5.2 注冊事件處理程序4.5.3 注銷事件處理程序4.5.4 事件對象4.5.5 常用事件4.6 應(yīng)用實例4.6.1 懸浮的廣告4.6.2 可拖動的層4.7 小結(jié)第5章 開發(fā)Ajax應(yīng)用程序需要使用的工具5.1 開發(fā)工具:Aptana5.1.1 Aptana的下載和安裝5.1.2 Aptana的界面介紹5.1.3 Aptana的使用5.1.4 Aptana的更新5.1.5 Aptana的卸載5.2 Firefox5.2.1 錯誤控制臺:Error Console5.2.2 優(yōu)秀的調(diào)試插件:Firebug5.3 HTTP調(diào)試工具:Fiddler5.3.1 Fiddler的下載和安裝5.3.2 使用Fiddler5.4 小結(jié)第3篇 Ajax應(yīng)用技術(shù)分析篇第6章 Hello World!分析6.1 XMLHttpRequest對象詳解6.1.1 初始化請求6.1.2 設(shè)置請求的HTTP頭信息6.1.3 發(fā)送請求6.1.4 獲取請求的當(dāng)前狀態(tài)6.1.5 指定請求狀態(tài)改變時的事件處理句柄6.1.6 返回當(dāng)前請求的HTTP狀態(tài)碼6.1.7 從返回信息中獲取指定的HTTP頭6.1.8 獲取返回信息的所有HTTP頭6.1.9 取得返回的數(shù)據(jù)6.1.10 取消當(dāng)前請求6.2 搭建基本的Ajax開發(fā)框架6.2.1 創(chuàng)建XMLHttpRequest對象6.2.2 發(fā)送請求和回調(diào)函數(shù)6.2.3 一個封裝好的基本Ajax應(yīng)用程序開發(fā)框架6.3 小結(jié)第7章 完善的Ajax應(yīng)用程序:Ajax留言本7.1 留言本的需求7.2 留言本的基本設(shè)計7.2.1 系統(tǒng)環(huán)境7.2.2 留言的數(shù)據(jù)和操作7.2.3 數(shù)據(jù)庫設(shè)計7.2.4 后臺功能模塊7.2.5 前臺腳本功能模塊7.2.6 系統(tǒng)文件結(jié)構(gòu)和文件清單7.3 留言本的實現(xiàn)7.3.1 創(chuàng)建數(shù)據(jù)庫7.3.2 完成前臺界面:index.html7.3.3 完成前臺界面:樣式表7.3.4 完成后臺功能模塊:數(shù)據(jù)庫操作模塊7.3.5 完成后臺功能模塊:留言本邏輯處理模塊7.3.6 完成后臺功能模塊:接口模塊7.3.7 完成前臺功能模塊:基本Ajax功能模塊7.3.8 完成前臺功能模塊:讀取和發(fā)送留言7.3.9 整合留言本程序7.4 留言本的功能測試7.5 小結(jié)第8章 調(diào)試技巧8.1 深入解析Firebug的調(diào)試功能8.1.1 檢查常規(guī)錯誤8.1.2 完善的log功能8.1.3 控制臺的命令行功能8.1.4 斷點、單步執(zhí)行和變量信息8.1.5 在其他瀏覽器中使用Firebug的控制臺8.1.6 屏蔽測試代碼8.2 使用Aptana的集成調(diào)試功能8.2.1 配置集成調(diào)試環(huán)境8.2.2 啟動調(diào)試8.2.3 斷點、單步執(zhí)行和變量信息8.2.4 使用console.log和dump輸出文本信息8.2.5 使用aptana.trace輸出調(diào)用堆棧信息8.2.6 使用斷言8.2.7 屏蔽調(diào)試代碼8.3 小結(jié)第9章 常見問題9.1 編碼的處理9.1.1 文件編碼與聲明編碼9.1.2 Ajax請求亂碼9.1.3 發(fā)送數(shù)據(jù)亂碼9.2 控制緩存9.3 選擇合適的請求方式9.4 控制多個Ajax請求9.4.1 輪詢模式9.4.2 事件響應(yīng)模式9.5 Ajax請求的安全性9.5.1 身份驗證9.5.2 防范SQL注入9.5.3 防范JavaScript注入9.6 小結(jié)第4篇 Ajax應(yīng)用進(jìn)階篇第10章 數(shù)據(jù)的組織方式:XML10.1 XML概述10.2 XML語法規(guī)范10.2.1 XML聲明10.2.2 根節(jié)點10.2.3 開始和結(jié)束標(biāo)記10.2.4 屬性10.2.5 合理地嵌套包含10.2.6 大小寫敏感性10.2.7 空白被保留10.2.8 XML的注釋10.2.9 元素的命名10.2.10 轉(zhuǎn)義字符10.2.11 CDATA部件10.3 XML命名空間10.4 XML Schema10.4.1 基本示例10.4.2 定義元素10.4.3 簡單類型10.4.4 復(fù)合類型10.4.5 定義屬性10.4.6 默認(rèn)值10.4.7 約束特殊值10.4.8 列表類型10.4.9 聯(lián)合類型10.4.10 匿名類型定義10.4.11 簡單的復(fù)合類型10.4.12 混合內(nèi)容10.4.13 任意類型10.4.14 分組和引用10.4.15 命名沖突10.4.16 關(guān)聯(lián)XML與XML Schema10.5 XML DOM10.5.1 創(chuàng)建XML DOM對象10.5.2 加載XML文檔10.5.3 加載XML片段10.5.4 取得XML內(nèi)容10.6 強大的檢索工具:XPath10.6.1 基本示例10.6.2 選取節(jié)點10.6.3 謂語10.6.4 通配符10.6.5 使用多個路徑10.6.6 坐標(biāo)軸10.6.7 運算符10.6.8 路徑表達(dá)式的步語法10.6.9 XPath函數(shù)10.7 格式化XML工具:XSL10.7.1 基本示例10.7.2 XSL聲明10.7.3 使用模板10.7.4 取得數(shù)據(jù)10.7.5 使用for-each元素代替模板10.7.6 使用sort元素進(jìn)行排序10.7.7 流程控制10.7.8 創(chuàng)建元素和屬性10.7.9 指定輸出格式10.8 在客戶端格式化XML10.9 跨瀏覽器的XML開發(fā)框架:zXML10.10 應(yīng)用實例:Ajax文章列表程序(XML)10.10.1 確認(rèn)需求10.10.2 系統(tǒng)設(shè)計10.10.3 系統(tǒng)實現(xiàn):創(chuàng)建數(shù)據(jù)庫10.10.4 系統(tǒng)實現(xiàn):完成后臺模塊10.10.5 系統(tǒng)實現(xiàn):完成前臺界面10.10.6 系統(tǒng)實現(xiàn):完成前臺模塊10.10.7 系統(tǒng)實現(xiàn):編寫xsl樣式表10.10.8 整合系統(tǒng)10.10.9 系統(tǒng)測試10.11 小結(jié)第11章 數(shù)據(jù)的組織方式:JSON11.1 JSON的語法結(jié)構(gòu)11.1.1 JSON的基本結(jié)構(gòu)11.1.2 JSON中值的類型11.2 JSON的語言支持11.2.1 在JavaScript中讀取JSON數(shù)據(jù)11.2.2 在JavaScript中輸出JSON 數(shù)據(jù)11.2.3 在PHP中使用JSON11.2.4 在C#中輸出JSON數(shù)據(jù)11.2.5 在C#中輸出帶類型說明的JSON數(shù)據(jù)11.2.6 在C#中讀取JSON數(shù)據(jù)11.2.7 更多語言支持11.3 JSON的優(yōu)點和不足11.3.1 JSON的優(yōu)點11.3.2 JSON的不足11.4 將XML轉(zhuǎn)換為JSON11.5 小結(jié)第12章 JavaScript面向?qū)ο缶幊蹋∣OP)12.1 JavaScript中的類12.1.1 創(chuàng)建類12.1.2 類的屬性12.1.3 類的方法12.1.4 公有屬性和私有屬性12.1.5 公有方法和私有方法12.1.6 靜態(tài)屬性和靜態(tài)方法12.1.7 原型對象prototype12.2 JavaScript中的繼承12.2.1 對象冒充12.2.2 使用對象冒充實現(xiàn)繼承12.2.3 繼承原型對象中的屬性和方法12.2.4 封裝繼承方法12.3 更多技巧12.3.1 屬性的封裝12.3.2 實現(xiàn)多態(tài)12.3.3 命名空間12.3.4 實現(xiàn)短類名12.4 使用JSVM進(jìn)行代碼組織12.4.1 下載和配置JSVM12.4.2 路徑和文件名的約定12.4.3 編寫類12.4.4 類的按需加載12.4.5 在類中引用其他類12.5 小結(jié)第13章 跨瀏覽器的兼容性問題13.1 使用getElementById代替idName13.2 表單元素的引用問題13.3 訪問集合對象成員的問題13.4 讀取自定義屬性的問題13.5 常量的定義問題13.6 input元素的type屬性讀寫問題13.7 模態(tài)窗口的問題13.8 frame的操作問題13.9 innerText的問題13.10 對父元素的引用問題13.11 getElementsByName的問題13.12 outerText的問題13.13 outerHTML的問題13.14 小結(jié)第14章 Prototype.js框架介紹14.1 Prototype.js常用方法介紹14.1.1 使用$方法代替document.getElementById14.1.2 使用$$方法獲得元素引用14.1.3 根據(jù)css類名取得元素集合14.1.4 使用Try.these嘗試運行多個函數(shù)14.1.5 使用$F方法來獲得表單元素的值14.1.6 數(shù)組迭代的簡化方法14.1.7 設(shè)置元素的樣式14.1.8 切換元素的隱現(xiàn)狀態(tài)14.1.9 序列化表單值14.1.10 轉(zhuǎn)換HTML標(biāo)簽14.2 基于Prototype.js的類和繼承14.2.1 使用Class.create()創(chuàng)建類14.2.2 Prototype.js中的繼承14.3 Prototype.js中的事件處理14.3.1 注冊事件處理函數(shù)14.3.2 注銷事件處理函數(shù)14.4 Prototype.js的Ajax功能14.4.1 Ajax.Request方法詳解14.4.2 用Ajax.Updater更新界面14.4.3 用Ajax. PeriodicalUpdater定時更新界面14.4.4 使用Form.request方法無刷新提交表單14.5 基于Prototype.js的留言本程序14.6 小結(jié)第15章 關(guān)于架構(gòu)的思考15.1 REST架構(gòu)模式15.2 Web應(yīng)用程序的發(fā)展史15.2.1 提供靜態(tài)文檔的Web站點15.2.2 早期的動態(tài)Web應(yīng)用程序15.2.3 融入式Web應(yīng)用程序15.3 Ajax為REST帶來新的契機15.3.1 緩存Ajax程序引擎15.3.2 緩存Ajax數(shù)據(jù)15.4 小結(jié)第16章 Ajax的缺陷及補救16.1 搜索引擎的收錄問題16.1.1 問題產(chǎn)生的原因16.1.2 解決辦法16.2 前進(jìn)和后退的問題16.2.1 問題產(chǎn)生的原因16.2.2 Firefox下的解決辦法16.2.3 在IE下的解決辦法16.3 小結(jié)第5篇 Ajax實戰(zhàn)篇第17章 Ajax高級表單驗證程序17.1 確定需求17.2 基本設(shè)計17.3 代碼實現(xiàn)17.3.1 實現(xiàn)EventManager類17.3.2 實現(xiàn)Request類17.3.3 實現(xiàn)Validator類17.3.4 實現(xiàn)FormItemValidator類17.3.5 實現(xiàn)FormValidator類17.4 測試第18章 Ajax動態(tài)聯(lián)動菜單18.1 確定需求18.2 基本設(shè)計18.3 實例代碼18.4 測試第19章 Ajax聊天室19.1 確定需求19.2 基本設(shè)計19.2.1 系統(tǒng)結(jié)構(gòu)19.2.2 實體及數(shù)據(jù)庫設(shè)計19.2.3 后臺功能模塊19.2.4 請求控制器19.2.5 前臺界面19.2.6 前臺功能模塊19.3 實例代碼19.3.1 建立數(shù)據(jù)庫19.3.2 實現(xiàn)后臺功能模塊19.3.3 請求控制器19.3.4 界面HTML和CSS代碼19.3.5 前臺功能模塊19.3.6 加入表情圖標(biāo)19.3.7 整合程序19.4 測試附錄A JavaScript速查手冊附錄B HTML DOM速查手冊附錄C Prototype速查手冊
章節(jié)摘錄
插圖:
編輯推薦
《Ajax從入門到精通》講解Ajax的原理、開發(fā)、調(diào)試、跨瀏覽器兼容等高級技術(shù)用、JavaScrlpl實現(xiàn)最流行的Ajax框架和組件、解讀最經(jīng)典的JavaScript框架Prototype.js、詳細(xì)介紹Web開發(fā)技術(shù)的優(yōu)化、分析、lavaScript的面向?qū)ο缶幊毯虯ja×的數(shù)據(jù)形式、JSON、配有源代碼光盤,提高學(xué)習(xí)效率。
圖書封面
評論、評分、閱讀與下載