在網頁程式設計領域, 目前最熱門的莫過於 AJAX (Asynchronous JavaScript And XML, 非同步 JavaScript 與
XML)!AJAX 並不是一項新技術, 而是將已存在一段時間的 JavaScript 和 XML 組合起來, 提供另一種瀏覽網頁的體驗。由於 Google
大量應用 AJAX 於其 Google Mail、 Google Maps 等服務, 使得 AJAX 在短時間爆紅起來:
Google Maps 就是應用 AJAX 技術的網頁服務
非同步的網頁服務
要瞭解 AJAX, 就要從 AJAX 的 A (Asynchronous) 開始。Asynchronous 翻譯為『非同步』,
字面上看起來有點不易瞭解,我們可以用帳號註冊網頁為例, 來說明什麼是 『同步』, 什麼是 『非同步』。
如果使用傳統的網頁設計方法, 使用者必須輸入所有的資料, 完成後按鈕送出, 然後等待伺服器處理完所有資料後, 再回傳註冊成功或失敗的網頁:
這種所有欄位資料 『同步』 送出的方式, 當伺服器處理資料時, 使用者能做的事情只有等待, 如果遇到伺服器忙碌, 或是網路速度較慢時,
造成的長時間等待可能會讓使用者不耐煩, 而且如果某筆資料有誤, 例如帳號名稱已經被其他人使用, 可能還得再重新輸入一次所有資料, 造成使用者的不便。
如果是採用 AJAX 技術的網頁, 填寫帳號之後, 當我們還在填寫其他資料時, 帳號欄位便可以 『非同步』 的方式傳回伺服器進行檢查:
上例中, 當帳號欄位以 『非同步』 的方式送回伺服器時, 使用者還可以在網頁其他欄位輸入資料, 不需枯等伺服器處理。而且, 當伺服器傳回結果時,
便會以局部更新的方式, 將訊息顯示在網頁上, 完全不需要換頁, 提供使用者更友善的瀏覽網頁體驗。
所以傳統網頁程式採用的 『同步』 處理, 指的是網頁上所有元件的資料都必須同時動作, 沒有任何一個可以脫隊自己行動。而 AJAX 網頁上的元件, 便能以
『非同步』 的方式傳送或顯示資料, 不必與其他元件同時動作。
例如瀏覽使用 AJAX 技術的 Google Maps 時, 再瀏覽地圖時, 即使瀏覽器還在等待伺服器送來的地圖內容,
我們仍可持續進行放大、縮小、移動位置、改變檢視方式等操作, 不會被換頁的動作所打斷:
|