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