以下是一段典型的AJAX程式(Google Maps API範例),從程式結構中我們可以知道,AJAX所包含的許多技術都混雜在同一個程式中。
整段程式中,採用AJAX的部份,在於編號第17至21行的程式碼中,說明如下:
第17行:對伺服器產生一個HTTP請求;第18行:使用HTTP的open()和send()方法;open()方法的第一個參數決定HTTP請求的方式;第二個參數則是請求處理的資料來源;第三個參數是用來設定請求處理為非同步或同步。如果參數值為「true」,則在伺服器尚未回傳結果時,JavaScript的函數會繼續執行,這也就是AJAX中非同步的含義;
第19行:設定HTTP請求物件(HTTP request object)所使用的JavaScript函數來處理回應,並定義處理回應的函數;
第20行:先檢查請求的狀態,如果狀態的值為4,表示全部的伺服器回應都已接受完畢。
第21行將結果以一個XMLDocument物件傳回,並使用JavaScript的DOM函數來解析;
執行結果如下圖:當使用者在網頁的地圖中,藉由滑鼠所產生的動作,例如放大或縮小、移動、以及放置橘子圖標等,後端的伺服器都會立即將結果回應到前端的瀏覽器。藉由AJAX引擎,使用者再也不需要冗長地等待數據處理的時間,就如同使用桌上型電腦的應用程式一樣。
從上面的描述中,我們可以得知,AJAX適用在處理大量數據交換的網頁上,例如複雜的網頁表格或地圖服務等。以表格為例,使用者無論在驗證欄位中的單筆資料或回傳結果時,都不須冗長的處理時間或刷新整個頁面。雖然JavaScript可以在瀏覽器端驗證資料的合法性(例如電子郵件格式必需為××@××.××),但對於合法卻重覆的內容(例如使用者名稱John),還是需要經過後端的伺服器的驗證,傳統都是使用者按下傳送後,並等待伺服器回傳結果後,使用者才知道是否需要重新填寫,但此時若不是頁面已刷新,就是必須換頁,使用者常忘了前一個錯誤為何,以及下一步需要更動的內容指示。AJAX讓整個過程都在同一頁面中完成,所以使用者不會迷失在層層的網頁中,而且只與伺服器交換必要的資料,所以呈現結果時,只會更動改變的部分,而不是刷新整個頁面。
對於複雜的資料,快速的驗證是很重要的,因為使用者等待的時間,會影響下一次造訪的意願。
RIA的定義
RIA是Rich Internet Application的縮寫,由Macromedia在2002年3月時所提出的,主要是將網頁處理的部份流成交由用戶端的瀏覽器負責執行,介於網頁應用程式與傳統的桌面應用程式的處理方式,兼具網際網路的廣播特性與桌面應用程式的執行效率。目前實作的方法,除了Macromedia本身的Flash技術外,也包括JavaScript與Java Applet等。文⊙張瑞隆
熱門新聞
2026-01-12
2026-01-12
2026-01-12
2026-01-12
2026-01-12