無論您是系統管理員、設計人員還是開發人員,您的工作都會受到 AJAX 的重大影響。管理員必須確保安全防護足夠高,以便應對各種可能的新類型攻擊。Intranet 管理員則必須保證任何瀏覽器上都沒有禁用 JavaScript。Web 設計人員需要面對一些新的挑戰,因為 AJAX 可實現的功能是以前無法實現或不切實際的。而開發人員則需要熟悉新的 API 和新的全面編程方法。儘管如此,AJAX 對架構師來說究竟有何意義?
AJAX 應用程式具有挑戰性,因為它們引入了全新的概念和新的基礎。AJAX 模式橫跨用戶端和伺服器環境,因此架構師角色必不可少。對於確定用戶端上發生的邏輯和處理與伺服器上保留的內容,以及確定用戶端和伺服器上的哪些資料對象能夠交換,清晰的體繫結構設想顯得舉足輕重。
AJAX 派上用場
Web 最初用於共用資訊的靜態頁面。短短几年之後,它發展成一種更加動態媒介。如今,Web 由互動性極強的頁面所組成;然而,它仍非常依賴於以整頁轉換為基礎的模式。使用者與頁面進行的互動越多,必須建立及返回使用者瀏覽器的頁面就越頻繁。以此方式使用互動式頁面所引起的負面結果有很多,例如,減緩頁面重新整理和閃爍。這是一種不完善的解決方案,經常會導致糟糕的使用者體驗。AJAX 使得此模式中發生了非常令人渴望的變化,它允許更簡潔的 Web 應用程式,並為產生新的應用程式奠定了基礎。AJAX 以終端使用者為核心。使用 AJAX 功能,Web 應用程式的互動性變得更強,響應更及時,更快速且更友好。互動和響應(操作緩慢時的反饋)都更妥善地得到了處理,便於使用者對頁面進行更多操作。總之,使用者獲得了更好的體驗。
使用 AJAX,更多代碼會在瀏覽器上執行,這要求將更多指令碼指定給用戶端頁面。但是,這留下了一些大問題有待解決。何種指令碼?誰將編寫此指令碼?此指令碼遵循哪些體繫結構原則和模式?
在本專欄中,我將從體繫結構角度介紹 AJAX,協助您、開發人員和架構師做出明智選擇。同時,我將為設計人員和管理員提供足夠的上下文資訊,讓他們的工作變得更加輕鬆。這是一個相當大的主題,因此我把它分為兩部分來講。請不要錯過下個月的專欄,屆時我將繼續這一討論。
AJAX 體繫結構
如果您要考慮 AJAX,請看圖 1,該圖說明了這一步的體繫結構含義。傳統的 Web 應用程式需要在伺服器上執行所有操作,應用程式只是偶爾會發出指令碼代碼,在用戶端上運行任務,如處理資料驗證。
圖 1傳統 Web 模式與 AJAX 模式(單擊該映像獲得較大視圖)
AJAX 應用程式使用負責對 Web 服務器發出調用的用戶端架構。AJAX 伺服器端架構則負責請求資料摘要並將其返回用戶端。這通常是 JavaScript Object Notation (JSON) 資料流,但也可使用其他格式,如 XML、RSS 和 CSV。
用戶端接收資料摘要,並使用 JavaScript 更新 UI。該伺服器通過返回以指定格式編碼的未經處理資料,對請求做出響應。頻寬消耗會降至最低,應用程式速度會提高(因為完成請求所用時間較少),而且 UI 更新也能在無可見回傳的情況下生效。但是,在解決眾多問題的同時,用戶端上操作的增加也帶來了新的問題,如新的編碼實踐、新的安全隱患、可訪問性問題等。