Ajax 是否是為了清潔之用?
還只是幾年之前,即使是頑固的開發(fā)人員也會(huì)將 Ajax 與由 Colgate-Palmolive 開發(fā)和生產(chǎn)的那個(gè)流行清潔劑聯(lián)系在一起,而不是將其視為一種可以提高在線體驗(yàn)的 Web 開發(fā)技巧,F(xiàn)在,Ajax 技術(shù)越來越受歡迎,大家不禁都想要獲得有關(guān)其工作原理以及在何種情況下可以使用它的全部信息。
工作原理
在開發(fā)和編寫 Ajax 應(yīng)用程序時(shí),需要理解前臺(tái)和后臺(tái)的工作原理。如下所示的是應(yīng)用程序內(nèi)的一種典型的事件流:
- 用戶請(qǐng)求一個(gè)網(wǎng)頁(yè)。
- 用戶更改此網(wǎng)頁(yè)上的狀態(tài)(例如,單擊一個(gè)鏈接、從選擇框中進(jìn)行選擇、單擊了某個(gè)單選按鈕或復(fù)選框)。
- 狀態(tài)的改變會(huì)擊發(fā)事件,調(diào)用一個(gè) JavaScript 函數(shù)。
- JavaScript 函數(shù)實(shí)例化一個(gè) XmlHttpRequest 對(duì)象,該對(duì)象會(huì)在后臺(tái)異步地產(chǎn)生一個(gè)對(duì)服務(wù)器的 HTTP 請(qǐng)求(注意,沒有發(fā)生頁(yè)面刷新)。
- 服務(wù)器響應(yīng),向 JavaScript 函數(shù)返回所請(qǐng)求的數(shù)據(jù)。
- JavaScript 函數(shù)通過使用額外的 JavaScript 和/或 DHTML 更新和修改所正在查看的頁(yè)面。
負(fù)責(zé)更新當(dāng)前網(wǎng)頁(yè)的某些部分的 JavaScript 需要知道哪個(gè) HTML 元素負(fù)責(zé)更新。要實(shí)際動(dòng)態(tài)更新給定頁(yè)面內(nèi)的特定元素(在無需重載此頁(yè)面的情況下),需要分配給這些 HTML 元素一個(gè)惟一 ID。清單 1 所示的是此演示中的一個(gè)簡(jiǎn)單的例子,稍后我們將對(duì)其進(jìn)行更深入的分析:
清單 1. 為 HTML 元素分配 ID
<select id="model" disabled="disabled"> <option value="">Select model</option> </select>
清單 1 為這個(gè)特定的選擇框分配的 ID 為 model。通過這個(gè) ID,就可以利用 JavaScript 輕松定位和處理所選元素及其內(nèi)容。
AjaxTags API 使用的是某些很好的、開源的第三方 JavaScript 庫(kù),這些庫(kù)會(huì)為您完成幾乎全部的繁重編程工作。其中的一個(gè)好處是這些庫(kù)均包括豐富的特性并經(jīng)諸多瀏覽器廣泛測(cè)試,所以盡可放心使用。AjaxTags 所使用的第三方庫(kù)包括:
- Prototype(一種帶多種實(shí)用函數(shù)的 JavaScript 庫(kù))
- Script.aculo.us(一種帶多種可視效果的 JavaScript 庫(kù))
- Overlibmws(一種 DHTML 彈出庫(kù))
何時(shí)使用 AjaxTags
在很多典型的環(huán)境中都可以使用 AjaxTags,這樣一來,不僅可以方便開發(fā)人員,而且還可以提高應(yīng)用程序的用戶體驗(yàn)。其中的一些用例包括:
- 基于第一個(gè)下拉框中所做的選擇來修改第二個(gè)下拉框的內(nèi)容
- 基于單擊或鼠標(biāo)懸浮事件從服務(wù)器發(fā)起對(duì)額外信息的請(qǐng)求,而且無需刷新用戶所查看的頁(yè)面
- 基于用戶輸入的數(shù)據(jù)在服務(wù)器上執(zhí)行計(jì)算,無需重載整個(gè)頁(yè)面
讓我們先來看一些如何將這些特性集成到應(yīng)用程序中的實(shí)際例子
出處:IBM developerWorks
責(zé)任編輯:moby
上一頁(yè) 用 AjaxTags 簡(jiǎn)化 Ajax 開發(fā) [1] 下一頁(yè) 用 AjaxTags 簡(jiǎn)化 Ajax 開發(fā) [3]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|