Ajax 即“Asynchronous Javascript And XML”(異步 JavaScript 和 XML),是指一種創(chuàng)建交互式、快速動(dòng)態(tài)網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù),無需重新加載整個(gè)網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術(shù)。
通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,Ajax 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個(gè)網(wǎng)頁的情況下,對(duì)網(wǎng)頁的某部分進(jìn)行更新。
這個(gè)術(shù)語源自描述從基于 Web 的應(yīng)用到基于數(shù)據(jù)的應(yīng)用。
Ajax 不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的Web應(yīng)用程序的技術(shù)。
使用 JavaScript 向服務(wù)器提出請(qǐng)求并處理響應(yīng)而不阻塞用戶核心對(duì)象XMLHttpRequest。通過這個(gè)對(duì)象,您的 JavaScript 可在不重載頁面的情況與 Web 服務(wù)器交換數(shù)據(jù),即在不需要刷新頁面的情況下,就可以產(chǎn)生局部刷新的效果。
Ajax 在瀏覽器與 Web 服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP 請(qǐng)求),這樣就可使網(wǎng)頁從服務(wù)器請(qǐng)求少量的信息,而不是整個(gè)頁面。
Ajax可使因特網(wǎng)應(yīng)用程序更小、更快,更友好。
Ajax 是一種獨(dú)立于 Web 服務(wù)器軟件的瀏覽器技術(shù)。Ajax 基于下列 Web 標(biāo)準(zhǔn):
JavaScript、XML、HTML與 CSS 在 Ajax 中使用的 Web 標(biāo)準(zhǔn)已被良好定義,并被所有的主流瀏覽器支持。Ajax 應(yīng)用程序獨(dú)立于瀏覽器和平臺(tái)。
Web 應(yīng)用程序較桌面應(yīng)用程序有諸多優(yōu)勢(shì);它們能夠涉及廣大的用戶,它們更易安裝及維護(hù),也更易開發(fā)。
不過,因特網(wǎng)應(yīng)用程序并不像傳統(tǒng)的桌面應(yīng)用程序那樣完善且友好。通過 Ajax,因特網(wǎng)應(yīng)用程序可以變得更完善,更友好。


使用AJAX構(gòu)建下列web標(biāo)準(zhǔn) AJAX工作原理
該技術(shù)在 1998 年前后得到了應(yīng)用。允許客戶端腳本發(fā)送HTTP請(qǐng)求(XMLHTTP)的第一個(gè)組件由Outlook Web Access小組寫成。該組件原屬于微軟 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),該文的迅速傳播加強(qiáng)了人們使用該項(xiàng)技術(shù)的意識(shí)。另外,對(duì)Mozilla/Gecko 的支持使得該技術(shù)走向成熟,變得更為易用。
Ajax 前景非常樂觀,可以提高系統(tǒng)性能,優(yōu)化用戶界面。Ajax 現(xiàn)有直接框架 AjaxPro,可以引入 AjaxPro.2.dll 文件,可以直接在前臺(tái)頁面 JavaScript 調(diào)用后臺(tái)頁面的方法。但此框架與表單驗(yàn)證有沖突。另外微軟也引入了 Ajax 組件,需要添加AjaxControlToolkit.dll 文件,可以在控件列表中出現(xiàn)相關(guān)控件。

構(gòu)架應(yīng)用及對(duì)AJAX框架的思考
開發(fā)模式
重要的技術(shù)和 Ajax 開發(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ù)中包含了。同時(shí),隨著技術(shù)的成熟還會(huì)有許多地方需要改進(jìn),特別是UI部分的易用性。
Ajax 開發(fā)與傳統(tǒng)的 B/S開發(fā)有很大的不同。這些不同引入了新的編程問題,最大的問題在于易用性。由于 Ajax 依賴瀏覽器的 JavaScript 和XML,瀏覽器的兼容性和支持的標(biāo)準(zhǔn)也變得和 JavaScript 的運(yùn)行時(shí)性能一樣重要了。這些問題中的大部分來源于瀏覽器、服務(wù)器和技術(shù)的組合,因此必須理解如何才能最好的使用這些技術(shù)。
綜合各種變化的技術(shù)和強(qiáng)耦合的客戶服務(wù)端環(huán)境,Ajax 提出了一種新的開發(fā)方式。Ajax 開發(fā)人員必須理解傳統(tǒng)的 MVC 架構(gòu),這限制了應(yīng)用層次之間的邊界。同時(shí),開發(fā)人員還需要考慮 B/S 環(huán)境的外部和使用 Ajax 技術(shù)來重定型 MVC 邊界。最重要的是,Ajax 開發(fā)人員必須禁止以頁面集合的方式來考慮 Web 應(yīng)用而需要將其認(rèn)為是單個(gè)頁面。一旦 UI 設(shè)計(jì)與服務(wù)架構(gòu)之間的范圍被嚴(yán)格區(qū)分開來后,開發(fā)人員就需要更新和變化的技術(shù)集合了。

利用AJAX J2ee開發(fā)組織機(jī)構(gòu)
AJAX的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
• 不需要插件支持
• 用戶體驗(yàn)極佳
• 提升Web程序性能
• 減輕服務(wù)器和寬帶的負(fù)擔(dān)
缺點(diǎn):
• 前進(jìn)后退按鈕被破壞
• 搜索引擎的支持不夠
• 開發(fā)調(diào)試工具缺乏
AJAX 應(yīng)用
• 運(yùn)用XHTML+CSS來表達(dá)資訊;
• 運(yùn)用JavaScript操作DOM(Document Object Model)來執(zhí)行動(dòng)態(tài)效果;
• 運(yùn)用XML和XSLT操作資料;
• 運(yùn)用XMLHttpRequest或新的Fetch API與網(wǎng)頁服務(wù)器進(jìn)行異步資料交換;
• 注意:AJAX與Flash、Silverlight和Java Applet等RIA技術(shù)是有區(qū)分的。