AJAX即“Asynchronous JavaScript and XML”(異步JavaScript和XML),AJAX并非縮寫詞,而是由Jesse James Gaiiett創(chuàng)造的名詞,是指一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開(kāi)發(fā)技術(shù)。
國(guó)內(nèi)使用ajax 構(gòu)建應(yīng)用程序通常的讀音為“阿賈克斯”和阿賈克斯足球隊(duì)讀音一樣。Web應(yīng)用的交互如Flickr, Backpack和Google在這方面已經(jīng)有質(zhì)的飛躍。這個(gè)術(shù)語(yǔ)源自描述從基于網(wǎng)頁(yè)的Web應(yīng)用到基于數(shù)據(jù)的應(yīng)用的轉(zhuǎn)換。在基于數(shù)據(jù)的應(yīng)用中,用戶需求的數(shù)據(jù)如聯(lián)系人列表,可以從獨(dú)立于實(shí)際網(wǎng)頁(yè)的服務(wù)端取得并且可以被動(dòng)態(tài)地寫入網(wǎng)頁(yè)中,給緩慢的Web應(yīng)用體驗(yàn)著色使之像桌面應(yīng)用一樣。 雖然大部分開(kāi)發(fā)人員在過(guò)去使用過(guò)XMLHttp或者使用Iframe來(lái)加載數(shù)據(jù),但僅到現(xiàn)在我們才看到傳統(tǒng)的開(kāi)發(fā)人員和公司開(kāi)始采用這些技術(shù)。就像新的編程語(yǔ)言或模型伴隨著更多的痛苦,開(kāi)發(fā)人員需要學(xué)習(xí)新的技巧及如何好利用這些新技術(shù)。
該技術(shù)在19912年前后得到了應(yīng)用。允許客戶端腳本發(fā)送HTTP請(qǐng)求(XMLHTTP)的第一個(gè)組件由Outlook Web A 框架應(yīng)用及對(duì)ajax框架的思考ccess小組寫成。該組件原屬于微軟Exchange Server,并且迅速地成為了Internet Explorer 4.0的一部分。部分觀察家認(rèn)為,Outlook Web Access是第一個(gè)應(yīng)用了Ajax技術(shù)的成功的商業(yè)應(yīng)用程序,并成為包括Oddpost的網(wǎng)絡(luò)郵件產(chǎn)品在內(nèi)的許多產(chǎn)品的領(lǐng)頭羊。但是,2005年初,許多事件使得Ajax被大眾所接受。Google在它著名的交互應(yīng)用程序中使用了異步通訊,如Google討論組、Google地圖、Google搜索建議、Gmail等。Ajax這個(gè)詞由《Ajax: A New Approach to Web Applications》一文所創(chuàng),該文的迅速流傳提高了人們使用該項(xiàng)技術(shù)的意識(shí)。另外,對(duì)Mozilla/Gecko的支持使得該技術(shù)走向成熟,變得更為易用。
AJAX前景非常樂(lè)觀,可以提高系統(tǒng)性能,優(yōu)化用戶界面。AJAX現(xiàn)有直接框架AjaxPro,可以引入AjaxPro.2.dll文件,可以直接在前臺(tái)頁(yè)面JS調(diào)用后臺(tái)頁(yè)面的方法。但此框架與FORM驗(yàn)證有沖突。
另微軟也引入了AJAX組件,需要添加AjaxControlToolkit.dll文件,可以在控件列表中出現(xiàn)相關(guān)控件。
許多 利用ajax j2ee開(kāi)發(fā)組織機(jī)構(gòu)重要的技術(shù)和AJAX開(kāi)發(fā)模式可以從現(xiàn)有的知識(shí)中獲取。例如,在一個(gè)發(fā)送請(qǐng)求到服務(wù)端的應(yīng)用中,必須包含請(qǐng)求順序、優(yōu)先級(jí)、超時(shí)響應(yīng)、錯(cuò)誤處理及回調(diào),其中許多元素已經(jīng)在Web服務(wù)中包含了,就像現(xiàn)在的SOA。AJAX開(kāi)發(fā)人員擁有一個(gè)完整的系統(tǒng)架構(gòu)知識(shí)。
同時(shí),隨著技術(shù)的成熟還會(huì)有許多地方需要改進(jìn),特別是UI部分的易用性。
AJAX開(kāi)發(fā)與傳統(tǒng)的CS開(kāi)發(fā)有很大的不同。這些不同引入了新的編程問(wèn)題,大的問(wèn)題在于易用性。
由于AJAX依賴瀏覽器的JavaScript和XML,瀏覽器的兼容性和支持的標(biāo)準(zhǔn)也變得和JavaScript的運(yùn)行時(shí)性能一樣重要了。這些問(wèn)題中的大部分來(lái)源于瀏覽器、服務(wù)器和技術(shù)的組合,因此必須理解如何才能好的使用這些技術(shù)。
綜合各種變化的技術(shù)和強(qiáng)耦合的客戶服務(wù)端環(huán)境,AJAX提出了一種新的開(kāi)發(fā)方式。AJAX開(kāi)發(fā)人員必須理解傳統(tǒng)的MVC架構(gòu),這限制了應(yīng)用層次之間的邊界。同時(shí),開(kāi)發(fā)人員還需要考慮CS環(huán)境的外部和使用AJAX技術(shù)來(lái)重定型MVC邊界。重要的是,AJAX開(kāi)發(fā)人員必須禁止以頁(yè)面集合的方式來(lái)考慮Web應(yīng)用而需要將其認(rèn)為是單個(gè)頁(yè)面。一旦UI設(shè)計(jì)與服務(wù)架構(gòu)之間的范圍被嚴(yán)格區(qū)分開(kāi)來(lái)后,開(kāi)發(fā)人員就需要更新和變化的技術(shù)集合了。
AJAX的利用ajax大機(jī)遇在于用戶體驗(yàn)。在使應(yīng)用更快響應(yīng)和創(chuàng)新的過(guò)程中,定義Web應(yīng)用的規(guī)則正在被重寫;因此開(kāi)發(fā)人員必須更注重用戶,F(xiàn)在用戶已經(jīng)逐漸習(xí)慣如何使用Web應(yīng)用了。例如用戶通常希望每一次按鈕點(diǎn)擊會(huì)導(dǎo)致幾秒的延遲和屏幕刷新,但AJAX正在打破這種長(zhǎng)時(shí)間的狀況。因此用戶需要重新體驗(yàn)按鈕點(diǎn)擊的響應(yīng)了。
可用性是AJAX令人激動(dòng)的地方而且已經(jīng)產(chǎn)生了幾種新穎的技術(shù)。其中引人注目的是一種稱為“黃色隱出”的技術(shù),它在數(shù)據(jù)更新之前時(shí)將用戶界面變?yōu)辄S色,更新完成后立刻恢復(fù)原來(lái)的顏色。
AJAX開(kāi)發(fā)人員將用戶從Web應(yīng)用的負(fù)載中解放出來(lái);小心地利用AJAX提供的豐富接口,不久桌面開(kāi)發(fā)人員會(huì)發(fā)現(xiàn)AJAX是他們的方向。