Ajax 即“Asynchronous Javascript And XML”(異步 JavaScript 和 XML),是指一種創建交互式、快速動態網頁應用的網頁開發技術,無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。
通過在后臺與服務器進行少量數據交換,Ajax 可以使網頁實現異步更新。這意味著可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。
這個術語源自描述從基于 Web 的應用到基于數據的應用。
Ajax 不是一種新的編程語言,而是一種用于創建更好更快以及交互性更強的Web應用程序的技術。
使用 JavaScript 向服務器提出請求并處理響應而不阻塞用戶核心對象XMLHttpRequest。通過這個對象,您的 JavaScript 可在不重載頁面的情況與 Web 服務器交換數據,即在不需要刷新頁面的情況下,就可以產生局部刷新的效果。
Ajax 在瀏覽器與 Web 服務器之間使用異步數據傳輸(HTTP 請求),這樣就可使網頁從服務器請求少量的信息,而不是整個頁面。
Ajax可使因特網應用程序更小、更快,更友好。
Ajax 是一種獨立于 Web 服務器軟件的瀏覽器技術。Ajax 基于下列 Web 標準:
JavaScript、XML、HTML與 CSS 在 Ajax 中使用的 Web 標準已被良好定義,并被所有的主流瀏覽器支持。Ajax 應用程序獨立于瀏覽器和平臺。
Web 應用程序較桌面應用程序有諸多優勢;它們能夠涉及廣大的用戶,它們更易安裝及維護,也更易開發。
不過,因特網應用程序并不像傳統的桌面應用程序那樣完善且友好。通過 Ajax,因特網應用程序可以變得更完善,更友好。
使用AJAX構建下列web標準 AJAX工作原理
該技術在 1998 年前后得到了應用。允許客戶端腳本發送HTTP請求(XMLHTTP)的第一個組件由Outlook Web Access小組寫成。該組件原屬于微軟 Exchange Server,并且迅速地成為了 Internet Explorer 4.0 的一部分。部分觀察家認為,Outlook Web Access 是第一個應用了 Ajax 技術的成功的商業應用程序,并成為包括Oddpost 的網絡郵件產品在內的許多產品的領頭羊。但是,2005 年初,許多事件使得 Ajax 被大眾所接受。Google 在它著名的交互應用程序中使用了異步通訊,如Google、Google 地圖、Google 搜索建議、Gmail等。Ajax 這個詞由《Ajax: A New Approach to Web Applications》一文所創,該文的迅速傳播加強了人們使用該項技術的意識。另外,對Mozilla/Gecko 的支持使得該技術走向成熟,變得更為易用。
Ajax 前景非常樂觀,可以提高系統性能,優化用戶界面。Ajax 現有直接框架 AjaxPro,可以引入 AjaxPro.2.dll 文件,可以直接在前臺頁面 JavaScript 調用后臺頁面的方法。但此框架與表單驗證有沖突。另外微軟也引入了 Ajax 組件,需要添加AjaxControlToolkit.dll 文件,可以在控件列表中出現相關控件。
構架應用及對AJAX框架的思考
開發模式
重要的技術和 Ajax 開發模式可以從現有的知識中獲取。例如,在一個發送請求到服務端的應用中,必須包含請求順序、優先級、超時響應、錯誤處理及回調,其中許多元素已經在Web 服務中包含了。同時,隨著技術的成熟還會有許多地方需要改進,特別是UI部分的易用性。
Ajax 開發與傳統的 B/S開發有很大的不同。這些不同引入了新的編程問題,最大的問題在于易用性。由于 Ajax 依賴瀏覽器的 JavaScript 和XML,瀏覽器的兼容性和支持的標準也變得和 JavaScript 的運行時性能一樣重要了。這些問題中的大部分來源于瀏覽器、服務器和技術的組合,因此必須理解如何才能最好的使用這些技術。
綜合各種變化的技術和強耦合的客戶服務端環境,Ajax 提出了一種新的開發方式。Ajax 開發人員必須理解傳統的 MVC 架構,這限制了應用層次之間的邊界。同時,開發人員還需要考慮 B/S 環境的外部和使用 Ajax 技術來重定型 MVC 邊界。最重要的是,Ajax 開發人員必須禁止以頁面集合的方式來考慮 Web 應用而需要將其認為是單個頁面。一旦 UI 設計與服務架構之間的范圍被嚴格區分開來后,開發人員就需要更新和變化的技術集合了。
利用AJAX J2ee開發組織機構
AJAX的優缺點
優點:
• 不需要插件支持
• 用戶體驗極佳
• 提升Web程序性能
• 減輕服務器和寬帶的負擔
缺點:
• 前進后退按鈕被破壞
• 搜索引擎的支持不夠
• 開發調試工具缺乏
AJAX 應用
• 運用XHTML+CSS來表達資訊;
• 運用JavaScript操作DOM(Document Object Model)來執行動態效果;
• 運用XML和XSLT操作資料;
• 運用XMLHttpRequest或新的Fetch API與網頁服務器進行異步資料交換;
• 注意:AJAX與Flash、Silverlight和Java Applet等RIA技術是有區分的。