出版時間:2008 出版社:人民郵電出版社 作者:Davec Johnson,Alexeic White,Andrec Charland 頁數(shù):287 譯者:張祖良,榮浩,高冰
Tag標(biāo)簽:無
前言
也許你和我們所遇見的許多有才華的開發(fā)者一樣,對AJAX技術(shù)以及如何使用這項技術(shù)來改善web應(yīng)用很感興趣,你可能已經(jīng)初步上網(wǎng)做了一番研究,訪問過Ajaxian.tom網(wǎng)站或者閱讀了關(guān)于AJAX開發(fā)的入門圖書。當(dāng)然,你也可能屬于人數(shù)更多的另一類有才華的開發(fā)者群體,想要走進(jìn)AJAX世界,開始實際使用這項技術(shù)。無論是哪種情況,我們都做了考慮。令人高興的是,開發(fā)者社區(qū)終于開始真正理解AJAX了。其實并沒有那么難。 我們決定編寫本書是因為我們對于現(xiàn)狀很失望:關(guān)于AJAX~~干發(fā)更為高級的主題的信息太少了。主要原因可能是講述這方面主題的圖書仍然還在“編寫”中,而且,盡管AJAX進(jìn)入主流應(yīng)用已有幾年時間,但它才剛剛開始進(jìn)入企業(yè)級軟件開發(fā)的領(lǐng)地。我們希望本書能成為企業(yè)級開發(fā)者感興趣的信息資源。為此,我們嘗試把目前的開發(fā)方法與JavaScript以及其他組成AJAX的技術(shù)結(jié)合起來,并以所有企業(yè)級開發(fā)者都熟悉和易于理解的方式講述?!”緯蟛糠謨?nèi)容源自多年來我們在Nitobi公司(www.nitobi.oom)構(gòu)建AJAXJ應(yīng)用和用戶界面組件的第一手經(jīng)驗。這代表了我們在開發(fā)過程中的所知所得,對于那些希望把AJAX引入到開發(fā)項目中的開發(fā)者來說,這應(yīng)該是很有用的資源。如果你想更加精通JavaScriptJ干發(fā),想解決AJAX怪癖①和性能問題,想從頭設(shè)計可用性好的Web軟件,那么本書將成為絕佳的資源?! ∥覀冇凶銐虻臅r間來討論如何以一種Java或者C#開發(fā)者熟悉的方式來編寫JavaScript代碼,并能使你快速上手。在這個過程中,我們會通過一些耳熟能詳?shù)能浖O(shè)計模式來描述AJAX開發(fā),并包含了AJAX開發(fā)過程中最熱門的話題,例如安全性和離線存儲。同時,不僅僅通過代碼的優(yōu)化,而且還通過利用因特網(wǎng)基礎(chǔ)設(shè)施支柱(例如緩存),給出了構(gòu)建高性能AJAx應(yīng)用的真實解決方案?! ”緯捎昧伺c其他AJAX圖書略微不同的方法,討論范圍較為全面,其中包括關(guān)于編程方面的大量建議,以及應(yīng)用可用性、可訪問性和國際化等問題的豐富討論。本書還包含了一個框架,用于AJAX開發(fā)項目中的風(fēng)險評估。本書還特別介紹了在真實企業(yè)應(yīng)用中使用AJAX的一些開發(fā)者,看看從他們的經(jīng)驗中能夠?qū)W到些什么。
內(nèi)容概要
《AJAX企業(yè)級開發(fā)》首先解釋了AJAX 為什么在大規(guī)模的開發(fā)中能有如此廣闊的應(yīng)用前景,接著系統(tǒng)地介紹了當(dāng)前重要的AJAX 技術(shù)和組件。你將看到把數(shù)據(jù)表、Web 窗體、圖表、搜索和過濾連接在一起用于構(gòu)建AJAX 應(yīng)用程序的框架開發(fā)的整個過程;在此基礎(chǔ)上,《AJAX企業(yè)級開發(fā)》給出了已經(jīng)過證實的AJAX 架構(gòu)模式,以及來源于實際的.NET 和Java AJAX 應(yīng)用程序的案例研究?! 禔JAX企業(yè)級開發(fā)》適用于任何平臺上的Web 開發(fā)和設(shè)計人員。
作者簡介
本書的作者均來自著名的企業(yè)級用戶體驗組件和解決方案公司Nitobi。Nitobi是OpenAjax聯(lián)盟的活躍成員,具有豐富的企業(yè)級Web開發(fā)經(jīng)驗,多年來,為時代華納、美國國家航空航天局、思科、寶馬、宜家、朗訊、西門子等跨國公司和大型機(jī)構(gòu)提供企業(yè)級解決方案,其中不乏關(guān)鍵任務(wù)和要求嚴(yán)苛的應(yīng)用。
Dave Johnson Nitobi公司的CTO和創(chuàng)始人之一,也是業(yè)界知名的Web技術(shù)專家,長期從事高性能AJAX組件的架構(gòu)和構(gòu)建。
Alexei White Nitobi公司組件工具產(chǎn)品經(jīng)理,是公司多個重要產(chǎn)品的主要架構(gòu)師。
Andrec Charlandc Nitobi公司創(chuàng)始人之一,目前擔(dān)任總裁和CEO,身經(jīng)百戰(zhàn)的Web技術(shù)專家,成功領(lǐng)導(dǎo)過100多個開發(fā)項目。
書籍目錄
第1章 AJAX和RIA1.1 變化中的Web1.1.1 傳統(tǒng)Web應(yīng)用之痛1.1.2 AJAX止痛藥1.2 企業(yè)中的AJAX1.3 采用AJAX的驅(qū)動因素1.3.1 可用性1.3.2 網(wǎng)絡(luò)利用率1.3.3 以數(shù)據(jù)為中心1.3.4 漸增的技巧、工具和技術(shù)升級1.3.5 服務(wù)器中立1.4 關(guān)于應(yīng)用1.4.1 AJAX技術(shù)1.4.2 編程模式1.5 AJAX的替換技術(shù)1.5.1 XUL1.5.2 XAML1.5.3 Java Applet和Web Start1.5.4 Adobe Flash、Flex和Apollo1.5.5 OpenLaszlo1.6 小結(jié)1.7 資源第2章 AJAX構(gòu)建塊2.1 JavaScript2.1.1 JavaScript類型2.1.2 閉包2.1.3 面向?qū)ο蟮腏avaScript2.1.4 prototype屬性2.1.5 面向?qū)ο缶幊毯屠^承2.1.6 易變性2.1.7 線程2.1.8 錯誤處理2.1.9 命名空間2.2 DOM2.2.1 基本原理2.2.2 操作DOM2.3 CSS2.3.1 繼承和層疊2.3.2 內(nèi)聯(lián)樣式2.3.3 樣式表2.3.4 動態(tài)樣式2.4 事件2.4.1 事件流2.4.2 事件綁定2.4.3 跨瀏覽器事件2.4.4 事件對象2.5 客戶端/服務(wù)器通信2.5.1 XMLHttpRequest基礎(chǔ)知識2.5.2 處理數(shù)據(jù)2.6 小結(jié)2.7 資源第3章 Web瀏覽器中的AJAX3.1 基于組件的AJAX3.1.1 漸增的AJAX3.1.2 對服務(wù)器的影響3.2 HTML標(biāo)準(zhǔn)3.2.1 文檔類型定義3.2.2 盒子模型3.3 啟動加載AJAX組件3.3.1 onload事件3.3.2 瀏覽器編碼技巧3.4 模型-視圖-控制器3.4.1 視圖3.4.2 控制器3.4.3 模型3.5 AJAX MVC3.5.1 AJAX模型3.5.2 AJAX視圖3.5.3 AJAX控制器3.5.4 面向方面的JavaScript3.6 小結(jié)3.7 資源第4章 AJAX組件4.1 命令式組件4.2 聲明式組件4.2.1 服務(wù)器端聲明式編程4.2.2 聲明式Google地圖4.2.3 替代方法4.3 自定義聲明式組件4.3.1 行為式組件4.3.2 聲明式組件4.3.3 關(guān)于聲明4.4 構(gòu)建組件4.4.1 基本功能4.4.2 連接到服務(wù)器4.4.3 最終版本4.5 小結(jié)4.6 資源第5章 從設(shè)計到部署5.1 設(shè)計5.1.1 AJAX建模5.1.2 應(yīng)用模型-視圖-控制器模式5.1.3 預(yù)先考慮性能問題5.2 原型設(shè)計5.2.1 線框繪制5.2.2 驗證設(shè)計決議5.3 測試5.3.1 測試驅(qū)動開發(fā)5.3.2 調(diào)試5.4 部署5.4.1 JavaScript壓縮5.4.2 圖片合并5.4.3 保護(hù)知識產(chǎn)權(quán)5.4.4 文檔5.5 小結(jié)5.6 資源第6章 AJAX架構(gòu)6.1 多層架構(gòu):從單層到多層6.2 異步消息6.3 輪詢6.4 服務(wù)器推送6.5 跟蹤請求6.6 緩存:處理數(shù)據(jù)6.7 基本緩存6.8 在組件中緩存6.9 在瀏覽器中緩存6.10 在服務(wù)器中緩存6.11 在數(shù)據(jù)庫中緩存6.11.1 MySQL6.11.2 MS SQL Server6.11.3 Oracle6.12 更新服務(wù)器模型:并發(fā)6.12.1 悲觀鎖定6.12.2 只讀鎖定6.12.3 樂觀鎖定6.12.4 沖突鑒定6.12.5 沖突解決6.12.6 自動的沖突解決6.13 流量控制6.13.1 客戶端6.13.2 服務(wù)器6.14 可伸縮性6.14.1 負(fù)載平衡和群集6.14.2 AJAX可伸縮性問題6.15 離線AJAX6.16 FireFox離線存儲6.17 IE userData離線存儲6.18 使用Flash客戶端存儲6.19 離線AJAX和并發(fā)6.20 小結(jié)6.21 資源6.21.1 REST和Web服務(wù)6.21.2 緩存6.21.3 數(shù)據(jù)庫性能6.21.4 離線AJAX第7章 Web Service和安全性7.1 Web Service7.2 Web Service協(xié)議7.2.1 表象狀態(tài)傳輸7.2.2 XML遠(yuǎn)程過程調(diào)用7.2.3 Web Service7.2.4 選擇合適的工具7.3 客戶端的SOAP7.3.1 IBM Web Service JavaScript庫7.3.2 Firefox7.3.3 IE7.4 跨域Web Service7.4.1 服務(wù)器代理7.4.2 URL片段標(biāo)識符7.4.3 Flash跨域XML7.4.4 腳本注入7.5 安全性7.6 AJAX的安全性考慮7.7 跨域漏洞7.7.1 跨站腳本7.7.2 跨站請求偽造7.7.3 JavaScript劫持7.8 SQL注入7.8.1 預(yù)處理語句7.8.2 存儲過程7.8.3 XPath注入7.9 數(shù)據(jù)加密和隱私7.10 防火墻7.11 小結(jié)7.12 資源第8章 AJAX可用性8.1 常見問題8.1.1 后退按鈕和書簽8.1.2 頁面大小8.1.3 自動提交8.2 可訪問性8.2.1 識別用戶的可訪問性需求8.2.2 JavaScript和Web可訪問性8.2.3 屏幕閱讀器和可訪問性8.2.4 不該為屏幕閱讀器提供的解決方案8.2.5 兼容JAWS的AJAX交互8.2.6 鍵盤可訪問性8.3 可用性測試8.4 迅速而又隨性的測試8.4.1 征募參與者8.4.2 設(shè)計并運(yùn)行測試8.5 軟件輔助測試8.5.1 用于測試可用性的工具8.5.2 對軟件輔助測試的一般忠告8.6 小結(jié)8.7 資源8.7.1 后退按鈕8.7.2 可用性測試第9章 用戶界面模式9.1 顯示模式9.2 交互模式9.3 小結(jié)9.4 資源9.4.1 拖曳資源9.4.2 進(jìn)度欄資源9.4.3 活動指示器資源9.4.4 顏色淡出資源9.4.5 即時編輯資源9.4.6 向下鉆取資源9.4.7 即時搜索資源9.4.8 即時表單資源第10章 風(fēng)險和最佳實踐10.1 風(fēng)險來源10.1.1 技術(shù)風(fēng)險10.1.2 文化/政策風(fēng)險10.1.3 市場風(fēng)險10.2 技術(shù)風(fēng)險10.2.1 范圍10.2.2 瀏覽器能力10.2.3 可維護(hù)性10.2.4 向前兼容10.2.5 第三方工具支持和代碼過時10.3 文化和政策風(fēng)險10.3.1 終端用戶的期待10.3.2 可培訓(xùn)性10.3.3 合法性10.4 市場風(fēng)險10.4.1 搜索引擎的可訪問性10.4.2 范圍10.4.3 貨幣化10.5 風(fēng)險評估和最佳實踐10.5.1 采用特定的AJAX框架或者組件10.5.2 漸進(jìn)增強(qiáng)和不唐突的JavaScript10.5.3 Google網(wǎng)站地圖10.5.4 可視化提示10.5.5 避免鍍金式設(shè)計10.5.6 制定維護(hù)計劃10.5.7 采用一種收益模型10.5.8 把培訓(xùn)作為應(yīng)用的一部分10.6 小結(jié)10.7 資源10.7.1 搜索引擎優(yōu)化10.7.2 統(tǒng)計10.7.3 網(wǎng)站地圖10.7.4 屏幕截取工具第11章 案例研究11.1 基于Web 2.0重新武裝美國國防部11.1.1 背景11.1.2 挑戰(zhàn)11.1.3 解決方案11.1.4 采用技術(shù)11.1.5 成果11.2 Agrium公司將AJAX技術(shù)整合到實際運(yùn)作中11.2.1 背景11.2.2 挑戰(zhàn)11.2.3 解決方案11.2.4 采用的技術(shù)11.2.5 成果11.3 AJAX助力國際運(yùn)輸與物流公司11.3.1 背景11.3.2 挑戰(zhàn)11.3.3 解決方案11.3.4 采用的技術(shù)11.3.5 成果11.4 小結(jié)11.5 資源附錄A OPENAJAX HUB
章節(jié)摘錄
第1章 AJAX和RIA 1.1 變化中的Web 在20世紀(jì)90年代末期,微軟首次在IE 5中引入了XIMLHttpRequest(XHR)對象,這個對象是AJAX功能所需的核心技術(shù)的一部分。同時,微軟引進(jìn)了0utlookWebAccess(OwA),OWA是一個讓人印象相當(dāng)深刻的AJAX界面,而且在技術(shù)上遠(yuǎn)遠(yuǎn)超出它所處的時代。當(dāng)時的主要缺點(diǎn)是無法在其他瀏覽器中使用XHR對象,并且對于鎖定微軟的又一個工具或者平臺,社區(qū)存在強(qiáng)烈的抵觸情緒。通過XHR在主流開發(fā)中直到現(xiàn)在才被緩慢采用,可以證實這一事實?! “殡S著在Firefox和Safari對XHR遠(yuǎn)程腳本的最終引入,以跨瀏覽器的方式構(gòu)建富異步通信才成為了可能。這也暗示著xHR能夠被部署到更多不同用戶的機(jī)器上,而不會引入太多風(fēng)險。當(dāng)XHR、JavaScript、DHTML和CSS結(jié)合時,創(chuàng)建富客戶端應(yīng)用且沒有Web應(yīng)用所特有的令人厭煩的刷新才成為了一種可能。與稍后介紹的其他很多富客戶端技術(shù)不同,AJAX基于各種瀏覽器和操作系統(tǒng)都支持的開發(fā)標(biāo)準(zhǔn),事實上消除了對廠商鎖定的擔(dān)憂,而且提高了可移植性?! ≡趥鹘y(tǒng)應(yīng)用中,一切都是圍繞Web頁面是作為靜態(tài)視圖出現(xiàn)在應(yīng)用中的這一做法的,而應(yīng)用又是完全基于web服務(wù)器的。用戶唯一可能的交互是向Web表單輸入數(shù)據(jù)或者是單擊一個鏈接,這兩種操作都導(dǎo)致了整個頁面的刷新,而不管它是在CRM應(yīng)用中更新一條完整的客戶記錄,還是在查看和編輯用戶記錄之間進(jìn)行狀態(tài)切換。在某些方面,傳統(tǒng)的Web應(yīng)用存在很多改進(jìn)的空間——例如,當(dāng)輸入大量的數(shù)據(jù)時。同時,在很多情形下,傳統(tǒng)的Web應(yīng)用的確表現(xiàn)出色,例如搜索引擎或者文檔儲存庫,長期以來都是傳統(tǒng)Web應(yīng)用成功的典范。此外,傳統(tǒng)的web能力,例如HTTP協(xié)議和資源緩存,對于基于AJAX的應(yīng)用而言也非常有用?! 〔煌诹餍械腁JAx地圖和Email應(yīng)用,大多數(shù)的企業(yè)級Web應(yīng)用圍繞數(shù)據(jù)錄入、數(shù)據(jù)編輯或者數(shù)據(jù)報表構(gòu)建。最常見的數(shù)據(jù)錄入應(yīng)用包括一個數(shù)據(jù)列表,例如CRM應(yīng)用中的客戶記錄或者銷售信息,數(shù)據(jù)條目能夠添加、刪除或者編輯。下面讓我們分析這樣的一個情況,在傳統(tǒng)Web應(yīng)用和基于AJAX的Web應(yīng)用中,當(dāng)一位出色的銷售人員被要求使用一個慢得讓人痛苦的新在線CRM工具在銷售過程中跟蹤會議記錄、客戶聯(lián)系信息和銷售進(jìn)展信息時,用戶的交互是如何進(jìn)行的。 1.1.1 傳統(tǒng)Web應(yīng)用之痛 當(dāng)推銷員登錄到應(yīng)用時,他將面對一個包含了10個潛在客戶記錄列表的Web頁面。對于大多數(shù)的傳統(tǒng)Web應(yīng)用,這類功能是通過使用靜態(tài)的HTML標(biāo)簽列出每條數(shù)據(jù)記錄來實現(xiàn)的,列表附近是鏈接到編輯或者刪除頁面的按鈕。銷售人員現(xiàn)在想要基于一些新的信息更新記錄。首要任務(wù)是找到需要更新的記錄。如果在前10條記錄中找不到,他將不得不進(jìn)行搜索,通過翻頁到下10條記錄,在數(shù)據(jù)列表中導(dǎo)航查找,而且需要等待頁面的刷新。找到這條記錄后,用戶單擊編輯按鈕。通過單擊向服務(wù)器發(fā)送了一個請求。然后,一個包括許多表單字段的頁面被發(fā)送給Web瀏覽器。大多數(shù)的表單字段是文本字段,其中有一些提供了復(fù)選框、下拉列表或者簡單的數(shù)據(jù)校驗(例如,檢查本地電話號碼確保其是7位數(shù)字)。在數(shù)據(jù)編輯表單中,除了傳統(tǒng)的Tab和Shift+Tab功能鍵之外,不存在其他的鍵盤快捷鍵方式可在編輯字段中移動。在數(shù)據(jù)編輯完成之后,用戶單擊位于頁面底部的保存按鈕,把數(shù)據(jù)提交到服務(wù)器,從而服務(wù)器能夠驗證數(shù)據(jù)的正確性并且把數(shù)據(jù)提交到數(shù)據(jù)庫。另外一個頁面被發(fā)送回瀏覽器以確認(rèn)保存操作。如果數(shù)據(jù)發(fā)生錯誤,用戶在頁面表單得到一個可視化的提示,這個頁面需要被發(fā)送回瀏覽器,用戶進(jìn)行適當(dāng)?shù)木庉?,然后再次單擊提交按鈕。如果每天執(zhí)行很多類似的相同操作,這將是一種相當(dāng)?shù)托曳ξ兜倪^程?! ∥覀儗幙上M褂脭?shù)據(jù)列表的Web頁面作為編輯頁面,這樣每條記錄都能夠立刻被編輯,也不希望使用單獨(dú)的表單編輯數(shù)據(jù)。在完成所有的修改后,我們能夠同時將這些數(shù)據(jù)提交到服務(wù)器,然后進(jìn)行保存。從可用性來說,這是很多傳統(tǒng)Web應(yīng)用所使用的用戶界面類型,而并非使用上文所描述的單獨(dú)的數(shù)據(jù)編輯方案。當(dāng)用戶保存數(shù)據(jù)時,所有的數(shù)據(jù)必須一次性保存,而不是在用戶輸入或者更新時增量地保存。這種方案意味著所有的數(shù)據(jù)必須被一次性大批量地發(fā)送到服務(wù)器,這將導(dǎo)致以下幾個可能的結(jié)果: 并發(fā)或者校驗問題迫使所有的數(shù)據(jù)以一種雜亂并且難以理解的方式重新顯示,提示用戶一次性修復(fù)數(shù)據(jù)的多個問題?! τ诮K端用戶,沒有任何的輔助手段重新提交數(shù)據(jù)時,斷斷續(xù)續(xù)的網(wǎng)絡(luò)連接問題或者服務(wù)器錯誤可能會導(dǎo)致數(shù)據(jù)被破壞甚至是完全丟失?! ∮脩粽J(rèn)證失敗,所有的改動將全部丟失。 無論結(jié)果如何,當(dāng)服務(wù)器持久化數(shù)據(jù)到數(shù)據(jù)庫并且重定向到新的Web頁面時,通常會導(dǎo)致長時間重新刷新,從而導(dǎo)致終端用戶極大的挫折感和痛苦。圖1-1的時序圖中展示了用戶和系統(tǒng)之間的交互。尤其需要注意的是,用戶閑坐在計算機(jī)前等待服務(wù)器響應(yīng)的部分。(這個時間通常用來玩?zhèn)€人紙牌游戲?! TML表單對于某些類型數(shù)據(jù)確實有用,尤其是對于新手用戶,或者沒有頻繁數(shù)據(jù)操作的界面。不過,對于那些必須進(jìn)行快速導(dǎo)航和編輯的大量復(fù)雜的數(shù)據(jù),則相當(dāng)痛苦。如果用戶需要從電子表格或者郵件中復(fù)制數(shù)據(jù)到應(yīng)用,往往意味著重新錄入或者復(fù)制并粘貼單獨(dú)的數(shù)據(jù)片段??捎眯詫<矣袝r把這種情況稱為“轉(zhuǎn)椅集成”(swivel chair integration),當(dāng)然并不需要可用性專家來指出,這是一種低效的工作方式,一種糟糕的用戶體驗?! ?.1.2 AJAX止痛藥 與傳統(tǒng)的Web表單處理大數(shù)據(jù)量的數(shù)據(jù)錄入應(yīng)用的方法不同,高效的應(yīng)用需要具備響應(yīng)性和直觀性??偠灾?,系統(tǒng)對于用戶的工作流程的影響應(yīng)該最小化。例如,用戶需要在數(shù)以千計的預(yù)期的客戶記錄中上下滾動,猶如從本地計算機(jī)中訪問數(shù)據(jù),而不是每次翻頁查看10條記錄。同時,當(dāng)數(shù)據(jù)被保存到服務(wù)器時,他們還需要繼續(xù)輸入數(shù)據(jù)到應(yīng)用中。用戶的使用習(xí)慣和與系統(tǒng)的交互方式必須盡可能地貼近桌面應(yīng)用,從而減少用戶把思維方式從桌面切換到Web上時所花費(fèi)的時間。用于快速數(shù)據(jù)錄入的理想界面需要類似于電子表格,但是每一列都要綁定到數(shù)據(jù)庫表中特定的字段。盡管與傳統(tǒng)的應(yīng)用類似,同樣使用簡單的HTML標(biāo)簽列出數(shù)據(jù),但是當(dāng)用戶點(diǎn)擊界面的任意數(shù)據(jù)時,該記錄應(yīng)該迅速變?yōu)榭删庉嫚顟B(tài),當(dāng)用戶按下回車鍵時,這些數(shù)據(jù)應(yīng)該被保存到服務(wù)器,這種情況類似于大多數(shù)的電子表應(yīng)用。如果在保存數(shù)據(jù)的過程中,由于數(shù)據(jù)庫并發(fā)問題產(chǎn)生錯誤,當(dāng)錯誤發(fā)生時,顯示哪些數(shù)據(jù)出現(xiàn)錯誤的信息應(yīng)該動態(tài)地顯示在用戶界面上。同樣,在數(shù)據(jù)編輯完成并且按下回車鍵后,焦點(diǎn)應(yīng)該自動地移動到下一條記錄,而且這條記錄在用戶按下鍵盤上的任意鍵時立刻變?yōu)榭删庉嫚顟B(tài),正如我們所期望的桌面電子表格所能完成的一樣。如圖1.2所示,我們可以看到通過使用AJAX技術(shù),用戶不必再閑坐在計算機(jī)之前等待服務(wù)器的響應(yīng)。相反,在保存操作的響應(yīng)返回到瀏覽器之前,用戶能夠繼續(xù)編輯數(shù)據(jù)?! 』贏JAX技術(shù)的用戶交互的關(guān)鍵在于,這項技術(shù)的核心是將少量的數(shù)據(jù)片段(而不是所呈現(xiàn)的HTMLWeb頁面)發(fā)送到服務(wù)器以及從服務(wù)器讀取,而不是發(fā)送由服務(wù)器完全裝配的巨大的_Web頁面。這就是用戶不需要等到數(shù)據(jù)保存之后才能發(fā)送請求到服務(wù)器,從而就能夠繼續(xù)編輯數(shù)據(jù)的原因。即使在這種情況下,由于在后臺通過使用AJAX功能只把編輯過的數(shù)據(jù)異步發(fā)送到了在這個應(yīng)用范例中,其他的熱鍵同樣可以工作,例如Ctrl+N創(chuàng)建一條新的記錄,Ctrl+v從其他文本文檔或者電子表格中直接粘貼到這個w曲應(yīng)用中(如圖1.3所示)。此外,為了用戶能夠獲取關(guān)于數(shù)據(jù)庫中用戶名和郵件地址是否可用的實時反饋,我們可以使用服務(wù)器端數(shù)據(jù)驗證,從而進(jìn)一步減少頁面刷新的次數(shù)。 AJAX架構(gòu)可用性的另一個優(yōu)勢是保護(hù)用戶免受來自本身和網(wǎng)絡(luò)的影響?;ㄙM(fèi)了大量的時間填寫一個很長HTML幾表單,卻僅僅因為失去了網(wǎng)絡(luò)連接而無法將操作或錄入的數(shù)據(jù)提交到服務(wù)器或者數(shù)據(jù)庫,將是相當(dāng)令人沮喪的?;贏JAX技術(shù),我們通常能夠把數(shù)據(jù)異步地發(fā)送回服務(wù)器。這項技術(shù)同時允許我們能夠在任何時刻保持服務(wù)器端和客戶端數(shù)據(jù)同步。盡管,我們不希望每次按鍵都不必要地提交對數(shù)據(jù)庫的改動,但我們可以把數(shù)據(jù)推送到服務(wù)器,甚至是保存在本地,從而避免于網(wǎng)絡(luò)停用或者客戶端系統(tǒng)問題而丟失數(shù)據(jù)。
編輯推薦
《AJAX企業(yè)級開發(fā)》是第一部AJAX企業(yè)級開發(fā)力作,大量來之不易的專家建議和最佳實踐, 闡釋企業(yè)應(yīng)用的開發(fā)者經(jīng)常遇到,但卻很少能得到及時解決的問題, 提供的準(zhǔn)確信息和建議讓你有信心在專業(yè)的業(yè)務(wù)應(yīng)用中使用專業(yè)的Ajax技術(shù),作者是著名Ajax技術(shù)公司Nitobi的創(chuàng)始人,該公司為OpenAjax聯(lián)盟活躍成員。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載