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