作者:論壇整理
AJAX淺談
AJAX技術在1998年前後開始應用在Web,之後經由Google把它發揚光大,讓更多人了解到JavaScript原來可以這樣使用,而不再是過去廣告字顯示或畫面漸層等刻版印象。如今AJAX已不再是新名詞或新技術,而最經典、有名的代表作算是Google Suggest及Google Maps。
AJAX的定義
AJAX全稱為「Asynchronous JavaScript and XML」(非同步JavaScript和XML),是一種建立互動式網頁應用程式的網頁開發技術。
AJAX vs. 傳統
JavaScript在傳統的作法是,你的檔案或資料庫來自server端或是要送到server,你可以用HTML窗體,並用GET或POST的方式透過submit按鍵將資料送到server端,然後等待響應訊息。但使用AJAX,你可以使用JavaScript的XMLHttpRequest 物件跟server做溝通,可以藉由從server回應的數據,直接更新全部或部分的頁面。
AJAX的優點
a. 不必更新全部網頁,可更新部份頁面。
b. 優化了browser和server之間的溝通,減少不必要的資料傳輸、時間及降低網路上資料流量。
c. 平衡了前、後端的負載,原本資料大多由後端負責處理,藉由AJAX讓客戶端分擔些工作,減低了後端的負載。
AJAX的缺點
a. browser的通用性,每個user端的瀏覽器不盡相同、版本也不一致,有可能會造成無法動作問題。
b. 客戶端會過肥,太多程式碼在客戶端也會造成開發上的成本。
c. 可能會暴露服務端,有可能被惡意攻擊、竄改,而造成安全上的漏洞。
AJAX的運用
為何AJAX適合用於裝載作業呢? 傳統的網頁資料更新,大多是在server端資料更新後便將資料送回client端的browser,當browser得到更新的請求時才會將網頁內容更新。當user執行裝載作業後,作業的狀態訊息尚未回傳,此時若再進行下個作業,往往會造成狀態訊息遺失。也因為裝載系統還需要控制前端的水泥裝載,設備間的狀態一有變動,網頁內容要能做到及時更新,使網頁中的embedded object 與多部硬設備間的溝通一直保持連結。在考慮多部硬體操作不會幹擾彼此下,採用Ajax可以讓整個作業流程更加順暢、合理。
例如:當user想要做水泥裝載時,按下裝載按鍵時,如果使用JavaScript去呼叫客戶端的com組件,可能會因為裝載需要等待一段時間,導致網頁整個當掉,也影響到其它按鈕的失效。這時若借用AJAX的技術作為輔助,AJAX的每次動作就會用XML Http Request跟server做溝通,待server回應後,接收回應資料更新Model狀態、資料庫及網頁頁面,這樣一來user不用一直等待實際裝載的時間,也不會造成頁面按鈕失效。
AJAX的應用並非只在水泥裝載這項,目前也運用在其它功能及系統上。考慮系統整體的實際使用面,AJAX解決了資料延遲的問題,也改善了資料傳輸的速度,使得各營運據點能提供更快速的服務。