AJAX有沒有未來?

來源:互聯網
上載者:User

【IT168 專稿】AJAX是若干成熟技術的組合,旨在讓使用者從Web應用中獲得更加滿意的使用者體驗。本文回顧了公司專屬應用程式體繫結構的進化曆程,試圖闡述AJAX是B/S架構發展的必然產物,但是,由於AJAX賴以生存的javascript程式設計語言的先天不足,AJAX似乎又前途堪憂。本文作者從中介軟體的角度,對AJAX的未來作出了自己的預測。

1. 什麼是AJAX

AJAX的全稱是Asynchronous JavaScript and XML,即非同步JavaScript和XML。這是一種多項成熟技術的組合,其目的是讓Web應用獲得與使用者快速、即時互動的能力。AJAX所組合的技術,包括:
• JavaScript,Java指令碼語言(注意,此Java非Sun公司的Java)
• DHTML,Dynamic HTML,動態HTML
• XML,Extensible Markup Language,可延伸標記語言 (XML)
• CSS,Cascading Style Sheets,層疊樣式表單
• DOM,Document Object Model,文件物件模型
• 微軟的稱為XMLHttpRequest的對象

在AJAX技術下,使用者會感覺到網頁與普通案頭應用一樣,響應迅速,而不是像傳統網頁那樣,任何操作都需要等待頁面的重新整理。AJAX是如何做到這一點的呢?有兩個秘密:第一,其實AJAX也會重新整理頁面,只不過,AJAX可以只重新整理部分頁面,而不是整個頁面;第二,AJAX的頁面重新整理是非同步,就是說,使用者可以繼續他的其他動作,而不必等候重新整理完成。

當使用者瀏覽一個基於AJAX的Web應用時,使用者的請求被提交給一個稱為AJAX引擎(AJAX Engine)的代理,這個AJAX引擎負責接收使用者請求,從Web伺服器上擷取響應,並更新瀏覽器內容。形象地說,傳統的Web應用中,瀏覽器是直接和Web伺服器打交道的,而在AJAX應用中,瀏覽器和Web伺服器之間出現了一個來回跑腿的“中介”,而且這個 “中介”相當的勤快,所以,能夠給瀏覽器提供更好的服務,從而使使用者獲得更滿意的應用體驗。

AJAX應用的例子,Google Map是一個典型。開啟Google Map網站(http://maps.google.com),會看到一張地圖,對地圖進行放大、縮小以及拖動等操作,網頁的響應十分迅速,看起來好像瀏覽器事先載入了整張地圖。其實,瀏覽器只是根據你的操作,向伺服器請求你所看到的那些資料,並非同步地更新你的瀏覽器內容,這一切,都拜AJAX所賜。

JavaScript和微軟的XMLHttpRequest對象,是AJAX 引擎的兩條腿。當與瀏覽器互動時,AJAX引擎使用JavaScript語言;而當與Web伺服器互動時,則使用微軟的XMLHttpRequest對象。由於AJAX引擎依賴微軟的XMLHttpRequest對象技術,所以,早期只有微軟的IE瀏覽器支援AJAX。現在,隨著採用AJAX技術的Web應用的不斷湧現,所有主流的瀏覽器,例如Firefox、Netscape、Opera、Safari等,也都支援AJAX了。

2. 公司專屬應用程式體繫結構的進化曆程

在筆者看來,AJAX的出現,並非偶然。為了說明這一點,讓我們來回顧一下,電腦應用體繫結構的發展曆史,這或許有助於我們揭示AJAX的來曆。

最早的電腦應用,是單機程式,運行在一台電腦上,那時還沒有電腦與電腦之間相互連信的概念,因為單機應用已經足以滿足人們的需要。因此,兩台電腦即使放在同一個實驗室,也是“機”犬相聞,老死不相往來。

人的慾望是永遠也不會滿足的,單機應用沒有持續多久,兩台電腦之間交換資料的需求,就隨著電腦應用範圍的擴充而出現了。在PC領域,最初的電腦資料互動形式是串口通訊,後來,隨著Novell公司著名的NetWare網路技術的推出,運行在兩台不同機器上的程式,有了可以更方便地互動的渠道,於是出現了客戶機和伺服器,即所謂的Client/Server結構,簡稱C/S結構。C/S結構因其將應用劃分為兩個部分的特點,也被稱為“二端”體繫結構。

C/S結構流行若干年後,人們發現,僅僅劃分“用戶端”和“伺服器”兩個角色,已經不敷使用,因為隨著應用複雜度的不斷增加,用戶端和伺服器都變得越來越龐大,於是,三端體繫結構冒了出來,在伺服器和客戶機之間增加了一個稱為“中介軟體(MiddleWare)”的“端”。在三端體繫結構中,原來散布在“用戶端”和“伺服器”上的一些功能(主要是應用邏輯),慢慢轉移到了中介軟體上,這樣就有效地減輕了“用戶端”和“伺服器”日益沉重的負擔,系統的架構重新趨於平衡。

三端體繫結構現在仍是公司專屬應用程式的事實上的標準,這是由三端體繫結構的適應性決定的。三個端中,中介軟體最為靈活,一方面可以擔負一部分用戶端的任務,有助於打造低成本的“瘦”用戶端;另一方面,一些通用的服務也可以從伺服器上挪到中介軟體上,讓伺服器的功能更加專一,以提高效能。中介軟體技術,作為三端體繫結構的核心技術,催生了很多以中介軟體為主要產品的軟體公司,激烈的競爭,使得中介軟體技術日趨成熟。

此後雖然出現了所謂的多端(nTier)體繫結構,本質上還是三端的,其區別只是一個應用中包含了不只一個中介軟體和伺服器,而是多個中介軟體,多個伺服器,甚至多種用戶端。

3. AJAX是B/S結構向三端體繫結構進化的產物嗎

在“用戶端/伺服器”體繫結構向“用戶端/中介軟體/伺服器”體繫結構演變的過程中,隨著互連網技術的廣泛應用,一種更簡便的體繫結構出現了,那就是所謂的“瀏覽器/伺服器(Browser/Server)”體繫結構,簡稱B/S結構。B/S結構一經出現,就因其無需開發用戶端,能大幅度降低公司專屬應用程式中用戶端部署和維護的成本等優點,迅速獲得了軟體企業及其客戶的青睞。現在,B/S結構是最流行的應用體繫結構,不論是大型的公司專屬應用程式,還是小型的個人應用,B/S結構都是首選的體繫結構,幾乎成了IT界的“預設”選擇,甚至我們在談起某某應用時,都不需要特別說明是什麼體繫結構了。

如果將B/S結構看作是C/S結構的變種(可能有人不同意,呵呵,只是筆者個人見解而已),那麼,我們可以發現,B/S結構不是三端體繫結構。在B/S結構中,作為“用戶端”的瀏覽器和作為“服務端”的Web伺服器,是直接互動的,並沒有中介軟體的介入,公司專屬應用程式的商務邏輯,要麼駐留在伺服器(包括Web伺服器、資料庫伺服器等)上,要麼以瀏覽器作為容器,沒有其他去處。因此,從“端”的角度看,B/S結構其實是“二端”的,像C/S結構一樣。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.