一、引言
傳統(tǒng)的Web頁(yè)面重載機(jī)制給用戶一種不連貫的體驗(yàn),因此,關(guān)于頁(yè)面載入技術(shù)的研究日益成為Web應(yīng)用程序設(shè)計(jì)的關(guān)鍵。
B/S 結(jié)構(gòu), 即Browser/Server( 瀏覽器/服務(wù)器) 結(jié)構(gòu), 是隨著Internet 技術(shù)的興起, 對(duì)C/S 結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下, 用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn), 無(wú)需開(kāi)發(fā)客戶端軟件, 在維護(hù)時(shí), 用戶只需更改服務(wù)器端的代碼即可, 易于管理和維護(hù), 在企業(yè)信息管理系統(tǒng)中有著廣泛的應(yīng)用, 但B/S 系統(tǒng)在應(yīng)用中面臨著一些問(wèn)題:
·為了在頁(yè)面上刷新顯示一個(gè)服務(wù)端的變量, 必須重新加載整個(gè)頁(yè)面, 新提供的信息和用戶等待的時(shí)間不成比例, 網(wǎng)絡(luò)緩慢時(shí)用戶難以忍受;
·由于程序?qū)W(wǎng)頁(yè)的幾乎所有操作都需要重新發(fā)送整個(gè)頁(yè)面的數(shù)據(jù), 所以很浪費(fèi)網(wǎng)絡(luò)流量;
·提交表單后, 用戶點(diǎn)擊刷新按鈕, 瀏覽器提示“無(wú)法刷新此頁(yè)除非重新發(fā)送數(shù)據(jù)”。
二、Ajax技術(shù)工作原理
Ajax 是Asynchronous、JavaScript and XML 的縮寫。Ajax 概念的最早提出者Jesse James Garrett 認(rèn)為: Ajax 并不是一門新的語(yǔ)言或技術(shù), 它實(shí)際上是幾項(xiàng)技術(shù)按一定的方式組合在一起, 在共同的協(xié)作中發(fā)揮各自的作用。它包括:
2.1 XMLHttpRequest 對(duì)象
JavaScript 對(duì)象XMLHttpRequest 是Ajax 的核心,XMLHttpRequest 是XMLHTTP 組件的對(duì)象。通過(guò)這個(gè)對(duì)象Ajax 可以像桌面應(yīng)用程序一樣只同服務(wù)器進(jìn)行數(shù)據(jù)層面的交換, 而不用每次都刷新界面。
2.2 JavaScript
JavaScript 是一種基于對(duì)象和事件驅(qū)動(dòng)并具有安全性能的腳本語(yǔ)言, 具有交互性、簡(jiǎn)單性和動(dòng)態(tài)性等特點(diǎn)。其在Ajax 應(yīng)用程序中, 將HTML、DOM 和XMLHttpRequest對(duì)象聯(lián)系起來(lái), 成為它們之間溝通的渠道。Ajax 利用JavaScript 的特性實(shí)現(xiàn)Web 應(yīng)用程序?qū)τ脩粜袨橛|發(fā)的實(shí)時(shí)響應(yīng)和處理。
2.3 DOM( Document Object Model, 文檔對(duì)象模型)
DOM 是表示文檔( 比如HTML 和XML) 和訪問(wèn)、操作構(gòu)成文檔的各種元素的應(yīng)用程序接口( API) , 一種基于樹(shù)型的解析技術(shù), 其本質(zhì)是建立網(wǎng)頁(yè)與Script 或程序語(yǔ)言溝通的橋梁。腳本語(yǔ)言通過(guò)D0M才可以跟頁(yè)面進(jìn)行交互,通過(guò)此接口JavaScript 可以以樹(shù)形結(jié)構(gòu)的方式遍歷整個(gè)HTML/XHTML 文檔, 獲取文檔節(jié)點(diǎn)對(duì)象, 讀取、修改文檔節(jié)點(diǎn)的屬性, 并將這此節(jié)點(diǎn)的屬性發(fā)送給服務(wù)器或者用服務(wù)器返回的數(shù)據(jù)更新節(jié)點(diǎn)屬性值, 從而更改文檔的內(nèi)容。
2.4 XML( Extensible Markup Language 可擴(kuò)展標(biāo)識(shí)語(yǔ)言)
XML 是一套定義語(yǔ)義標(biāo)記的規(guī)則, 也是元標(biāo)記語(yǔ)言,即定義了用于定義其他與特定領(lǐng)域有關(guān)的、語(yǔ)義的、結(jié)構(gòu)化的標(biāo)記語(yǔ)言的句法語(yǔ)言。使用XML 可以規(guī)范的定義結(jié)構(gòu)化數(shù)據(jù), 使網(wǎng)上傳輸?shù)臄?shù)據(jù)和文檔符合統(tǒng)一的標(biāo)準(zhǔn)。用XML 表述的數(shù)據(jù)和文檔, 可以很容易地讓所有程序共享。
針對(duì)本文第一節(jié)提到的一系列問(wèn)題, Ajax 技術(shù)的應(yīng)用為我們提供了更好的解決方案。Ajax 的工作原理相當(dāng)于在用戶和服務(wù)器之間加了一個(gè)中間層———Ajax引擎, 使用戶的請(qǐng)求與服務(wù)器響應(yīng)異步化, 并非所用的數(shù)據(jù)處理都交由服務(wù)器, 部分?jǐn)?shù)據(jù)或校驗(yàn)由Ajax 引擎處理, 當(dāng)需要向服務(wù)器讀數(shù)據(jù)時(shí).才向服務(wù)器發(fā)送請(qǐng)求,如圖1所示。這樣在整個(gè)過(guò)程中,只需要交換少量的數(shù)據(jù)。既減輕了服務(wù)器和網(wǎng)絡(luò)的負(fù)擔(dān),又加快了響應(yīng)速度, 縮短了用戶的等待時(shí)間。
圖1 Ajax技術(shù)
Ajax引擎可以實(shí)現(xiàn)瀏覽器和服務(wù)器信息交互的異步化。一方面,通過(guò)JavaScript腳本編程語(yǔ)言靈活地處理各種用戶請(qǐng)求,并利用DOM和CSS完成用戶界面的動(dòng)態(tài)和格式化顯示;另一方面,在無(wú)需刷新和重載瀏覽器頁(yè)面的前提下,通過(guò)JavaScrip,利用XMLHttpRequest對(duì)象與服務(wù)器進(jìn)行線路化的數(shù)據(jù)交換,一個(gè)完整的Ajax執(zhí)行步驟如圖2所示。
圖2 Ajax執(zhí)行步驟
Ajax采用客戶端腳本與Web服務(wù)器交換數(shù)據(jù)。所以,不必采用會(huì)中斷交互的完整頁(yè)面刷新,就可以動(dòng)態(tài)地更新Web頁(yè)面。使用Ajax,可以創(chuàng)建更加豐富、更加動(dòng)態(tài)的Web應(yīng)用程序用戶界面,其即時(shí)性與可用性甚至能夠接近本機(jī)桌面應(yīng)用程序。大量應(yīng)用Ajax解決組織結(jié)構(gòu)的載入問(wèn)題,避免了因循環(huán)載入數(shù)據(jù)造成的運(yùn)算負(fù)荷大、最大限度的減少控件量、增加互動(dòng)和體驗(yàn)。系統(tǒng)在日程管理、即時(shí)通訊、權(quán)限分配等模塊中采用了Ajax技術(shù),提高了系統(tǒng)的運(yùn)行效率,也讓系統(tǒng)具備了更好的可維護(hù)性和擴(kuò)展性。通過(guò) Ajax,因特網(wǎng)應(yīng)用程序可以變得更完善,更友好。
三、Ajax技術(shù)在企業(yè)信息系統(tǒng)中的應(yīng)用
3.1企業(yè)在線考試系統(tǒng)的無(wú)刷新答案提交
在企業(yè)在線考試系統(tǒng)中,用Ajax技術(shù)實(shí)現(xiàn)考試的無(wú)刷新自動(dòng)實(shí)時(shí)提交,防止意外導(dǎo)致考試結(jié)果保存錯(cuò)誤,以下為關(guān)鍵代碼:
//捕捉用戶操作,調(diào)用保存函數(shù)
3.2企業(yè)在線培訓(xùn)系統(tǒng)的學(xué)習(xí)時(shí)間的定時(shí)讀取與保存
在企業(yè)在線培訓(xùn)系統(tǒng)中,用Ajax技術(shù)實(shí)現(xiàn)在線學(xué)習(xí)時(shí)間的讀取與保存,自動(dòng)計(jì)算學(xué)時(shí)學(xué)分,以下為關(guān)鍵代碼:
3.3企業(yè)信息系統(tǒng)錄入信息時(shí)的自動(dòng)填充
在企業(yè)信息系統(tǒng)中,有時(shí)用戶會(huì)錄入大量數(shù)據(jù)信息,而有的數(shù)據(jù)項(xiàng)必須是系統(tǒng)已有的數(shù)據(jù),用戶希望在錄入數(shù)據(jù)時(shí)系統(tǒng)提供自動(dòng)填充功能,無(wú)論輸入部分漢字、英文或數(shù)字或是其中任意組合,系統(tǒng)能彈出完整信息供用戶選擇,類似百度的自動(dòng)填充效果,利用A jax技術(shù)可實(shí)現(xiàn)此功能,關(guān)鍵代碼如下:
3.4 企業(yè)信息系統(tǒng)調(diào)用復(fù)雜存儲(chǔ)過(guò)程時(shí)的信息交互
企業(yè)信息系統(tǒng)應(yīng)用中,往往在后臺(tái)處理許多復(fù)雜的業(yè)務(wù)邏輯,最常用的手段是調(diào)用數(shù)據(jù)庫(kù)后臺(tái)的存儲(chǔ)過(guò)程,為了不使靜態(tài)頁(yè)面長(zhǎng)時(shí)間處于等待狀態(tài),可采用此方法:在前臺(tái)顯示Gif動(dòng)畫,通過(guò)Ajax調(diào)用后臺(tái)存儲(chǔ)過(guò)程,關(guān)鍵代碼如下:
四、總結(jié)
Ajax 技術(shù)以后, 應(yīng)用程序不必完全依賴于從服務(wù)器重新載入頁(yè)面來(lái)向用戶呈現(xiàn)更改, 它能提供高度交互的Web應(yīng)用, 與桌面應(yīng)用所差無(wú)幾, 用戶既可以繼續(xù)享受web 應(yīng)用帶來(lái)的便利, 又可以繼續(xù)享受桌面應(yīng)用的反應(yīng)靈敏, 界面豐富, 隨著人們對(duì)于Ajax 技術(shù)的進(jìn)一步認(rèn)識(shí), 其應(yīng)用必將更加廣泛。Ajax采用獨(dú)特的遠(yuǎn)程腳本調(diào)用技術(shù),異步實(shí)現(xiàn)頁(yè)面數(shù)據(jù)的更新,使用全新的網(wǎng)頁(yè)應(yīng)用程序設(shè)計(jì)模式,解決了傳統(tǒng)頁(yè)面的重載問(wèn)題。將Ajax技術(shù)并引入到企業(yè)信息系統(tǒng)中,Ajax技術(shù)將瀏覽器端和服務(wù)器端傳統(tǒng)的同步交互通信方式改變?yōu)楫惒浇换ネㄐ欧绞?從而減輕了服務(wù)器負(fù)擔(dān)、提高了系統(tǒng)的響應(yīng)速度。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:Ajax技術(shù)在企業(yè)信息系統(tǒng)中的應(yīng)用研究
本文網(wǎng)址:http://www.oesoe.com/html/support/1112155643.html