現在,有一種越來越流行越熱的「老」技術,可以改變這種窘迫的局面。那就是Ajax。如今,隨著Gmail、Google-maps的應用和各種瀏覽器的支持,Ajax正逐漸吸引全世界的目光。 刷新網頁-等待。 。 。 ——刷新網頁——等待。 。 。
當您在使用瀏覽器瀏覽網頁的時候,您是否經常遇到上面的情況?當您面對空白而緩慢展現的螢幕時,您是否感到痛苦甚至憤怒?
現在,有一種越來越流行越熱的「老」技術,可以改變這種窘迫的局面。那就是Ajax。如今,隨著Gmail、Google-maps的應用和各種瀏覽器的支持,Ajax正逐漸吸引全世界的目光。
1.Ajax技術簡介
AJAX(Asynchronous JavaScript and XML,即非同步JavaScript + XML),其實是多種技術的綜合。正如Ajax的命名者Jesse James Garrett所指出的:
Ajax不是一項技術。它其實是幾項技術,每項技術本身都很繁榮,它們以強而有力的全新方式結合起來。
Ajax主要涵蓋以下幾方面的技術:
-- 運用XHTML和CSS實現基於各種標準的展示。
-- 運用文件物件模型(Document Object Model)實現動態顯示與互動。
-- 運用XML和XSLT實作資料交換和操作。
-- 運用XMLHttpRequet實現非同步資料檢索。
-- JavaScript將所有這些綁定在一起。
與傳統的Web應用不同,Ajax採用非同步互動過程。 Ajax在使用者與伺服器之間引入一個中間媒介,從而消除了網路互動過程中的處理—等待—處理—等待缺點。使用者的瀏覽器在執行任務時即裝載了Ajax引擎。 Ajax引擎是用JavaScript語言編寫,通常藏在一個隱藏的框架中。它負責編譯使用者介面及與伺服器之間的互動。 Ajax引擎允許使用者與應用軟體之間的互動過程非同步進行,獨立於使用者與網路伺服器間的交流。 AJAX的原則是“按需取資料”,使用Ajax可以最大程度的減少冗餘請求,和回應對伺服器造成的負擔。
2.Ajax技術與ERP
目前主流的ERP採取的是B/S架構,在ERP的實際應用中,也存在著許多傳統Web開發方式無法解決的問題。雖然Ajax技術有待進一步完善和成熟,但是在ERP開發中適當地研究和引入Ajax開發思想和技術,解決傳統方法難以應付的問題,無疑對開發人員和客戶都是有益的。
以下就Ajax技術在ERP中可能的應用場景進行簡單的討論。
(1)資料驗證
在進行表單內容的填寫與更新時,有的時候需要將更新的資料到資料庫中進行一下資料驗證。傳統的資料驗證通常有兩種方式:一種是直接填寫,然後提交表單,這種方式需要將這個頁面提交到伺服器端進行驗證,整個過程不僅時間長而且造成了伺服器不必要的負擔;第二種方式是改進了的驗證過程,使用者可以透過點擊對應的驗證按鈕,開啟新視窗查看驗證結果,但是這樣需要新開一個瀏覽器視窗或對話框,還需要專門編寫驗證的頁面,比較耗費系統資源。而使用Ajax技術,可以由XMLHttpRequet物件發出驗證請求,根據返回的HTTP回應判斷驗證是否成功,整個過程不需要彈出新窗口,也不需要將整個頁面提交到伺服器,快速而又不加重伺服器負擔。
(2)樹形結構
分類樹或樹狀結構在ERP系統中使用得非常廣泛。應用Ajax技術可以改進分類樹的實作機制。在初始化頁面時,只取得第一級子分類的資料並且顯示;當使用者點開一級分類的第一節點時,頁面會透過Ajax向伺服器請求目前分類所屬的二級子分類的所有資料;如果再請求已經呈現的二級分類的某一節點時,再次向伺服器請求當前分類所屬的三級子分類的所有數據,以此類推。頁面會根據使用者的操作向伺服器請求它所需的數據,這樣就不會有資料的冗餘,減少了資料下載總量。同時,更新頁面時不需要重載所有內容,只更新需要更新的那部分內容即可,相對於以前後台處理並且重載的方式,大大縮短了用戶的等待時間。
(3)數據自動更新
Ajax出現之前,使用者為了即使了解相應的內容必須不斷刷新頁面,查看是否有新的內容變化,或者頁面本身實現定時刷新的功能。有可能會發生這種情況;有一段時間網頁的內容沒有發生任何變化,但是用戶並不知道,仍然不斷的刷新頁面;或者用戶失去了耐心,放棄了刷新頁面,卻很有可能在此有新的消息出現,這樣就錯過了第一時間得到消息的機會。
應用程式Ajax可以改善這種情況,頁面載入以後,會透過Ajax引擎在背景進行定時的輪詢,向伺服器發送請求,查看是否有最新的訊息。如果有則將新的資料(而不是所有資料)下載並且在頁面上進行動態的更新,透過一定的方式通知使用者(實現這樣的功能正是JavaScript的強項)。這樣即避免了用戶不斷手動刷新頁面的不便,也不會因為重複刷新頁面造成資源浪費。
需要注意的是,雖然Ajax已經獲得廣泛的支持,但實際的開發中,還是要注意跨瀏覽器的問題,這主要是在JavaScript程式設計部分。不過許多流行的框架封裝了這些細節部分,可以解決這個問題。另一方面,如果用戶還在大量使用比較早期的瀏覽器版本,Ajax技術可能就無法奏效,在實施的時候這一點值得注意。
Ajax為Web應用開發提供了新的機會,也為ERP系統提出了新的要求。當因為Ajax技術而讓用戶感受到全新體驗的時候,贏家就不會只是用戶。