摘要:針對(duì)采用請(qǐng)求/響應(yīng)交互模式的遠(yuǎn)程教育平臺(tái)不能實(shí)現(xiàn)異步通訊的問(wèn)題,分析了Ajax技術(shù)的原理及其關(guān)鍵技術(shù),并采用Ajax技術(shù)設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)遠(yuǎn)程教育系統(tǒng),實(shí)驗(yàn)表明,基于Ajax技術(shù)的應(yīng)用提高了交互式教學(xué)的響應(yīng)速度。
關(guān)健詞:Web2.0;Ajax;遠(yuǎn)程教育
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)12-2829-03
遠(yuǎn)程教育是一種基于計(jì)算機(jī)技術(shù)和通訊技術(shù)的新教育方式,隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,它憑借其自身優(yōu)點(diǎn),已成為現(xiàn)代教育的一個(gè)亮點(diǎn)。在現(xiàn)有的高等教育條件下,采用網(wǎng)上現(xiàn)代遠(yuǎn)程教育形式, 擴(kuò)大了高校教學(xué)覆蓋面。目前,基于Web 技術(shù)以B/S架構(gòu)為基礎(chǔ)的應(yīng)用日漸成熟,但是傳統(tǒng)的Web 應(yīng)用有著諸多不足,如性能較低、網(wǎng)絡(luò)流量較大,等待時(shí)間較長(zhǎng),與學(xué)生的交互過(guò)程不夠快捷等等。為了克服傳統(tǒng)Web 應(yīng)用技術(shù)的缺點(diǎn),該文引入作為Web2.0 核心技術(shù)之一的Ajax 技術(shù),基于Ajax技術(shù)構(gòu)建一個(gè)應(yīng)用于遠(yuǎn)程教育的培訓(xùn)系統(tǒng),實(shí)現(xiàn)了應(yīng)用頁(yè)面與服務(wù)器的異步通訊,瀏覽器窗口無(wú)需刷新即可滿足學(xué)習(xí)者的操作需求,使頁(yè)面重載次數(shù)和學(xué)習(xí)者等待時(shí)間大大減少,相比于傳統(tǒng)WEB應(yīng)用技術(shù),Ajax技術(shù)不僅在具有動(dòng)態(tài)性、交互性有著明顯的優(yōu)勢(shì),且還具有人機(jī)界面更為友好的特點(diǎn)。
1 Ajax簡(jiǎn)介
1.1 Ajax的工作原理
Ajax(Asynchronous JavaScript and XML)是多種技術(shù)的綜合, 包括JavaScript, XMLHTTP, XML, HTML 和CSS, DOM, XSLT。Ajax技術(shù)克服了以往網(wǎng)絡(luò)交互過(guò)程中的長(zhǎng)時(shí)間進(jìn)行循環(huán) “處理—等待”的缺點(diǎn),用戶的WEB應(yīng)用在執(zhí)行任務(wù)的過(guò)程已加載了Ajax 引擎,該引擎的主要作用是負(fù)責(zé)解釋執(zhí)行用戶界面及其與服務(wù)器之間的交互,允許Web 頁(yè)面在無(wú)需刷新整個(gè)頁(yè)面的情形下和服務(wù)器主機(jī)進(jìn)行通信,使學(xué)習(xí)者與頁(yè)面之間的交互過(guò)程異步執(zhí)行,獨(dú)立于用戶和網(wǎng)絡(luò)服務(wù)器間的交流。Ajax技術(shù)根據(jù)實(shí)際需要獲取數(shù)據(jù),使數(shù)據(jù)的實(shí)際讀取量大大降低。
Ajax的工作原理可以理解為在學(xué)習(xí)者和服務(wù)器之間架設(shè)一個(gè)中間層, 使用異步方式實(shí)現(xiàn)學(xué)習(xí)者的操作和服務(wù)器響應(yīng),無(wú)須學(xué)習(xí)者的所有請(qǐng)求都提交給服務(wù)器, 譬如一些數(shù)據(jù)處理和數(shù)據(jù)驗(yàn)證等都交給Ajax引擎來(lái)完成, 只有當(dāng)從服務(wù)器獲取新數(shù)據(jù)這一需求得到確定時(shí),再由Ajax引擎向服務(wù)器提交獲取數(shù)據(jù)的請(qǐng)求。
傳統(tǒng)的WEB開發(fā)是以一種基于靜態(tài)頁(yè)面的方式來(lái)理解WEB應(yīng)用的。從Ajax的角度來(lái)看,Web應(yīng)用只是由少量的頁(yè)面構(gòu)建, 而每個(gè)頁(yè)面則是一個(gè)次級(jí)別的Ajax應(yīng)用。每個(gè)頁(yè)面都包括有一些基于JavaScript開發(fā)的Ajax組件。這些組件使用Http Request對(duì)象和XML以異步的方式與服務(wù)器通信, 在這些組件從服務(wù)器獲取所需數(shù)據(jù)后使用DOM API來(lái)實(shí)現(xiàn)頁(yè)面中的部分內(nèi)容的更新。因此Ajax技術(shù)與傳統(tǒng)的WEB應(yīng)用技術(shù)的區(qū)別主要體現(xiàn)在以下3個(gè)地方:
1)無(wú)須刷新整個(gè)頁(yè)面, 在頁(yè)面內(nèi)實(shí)現(xiàn)其與服務(wù)器通信。
2)實(shí)現(xiàn)學(xué)習(xí)者的操作與服務(wù)器響應(yīng)異步化, 無(wú)須打斷學(xué)習(xí)者的操作,具有更加迅速快捷的響應(yīng)速度。
3)由Ajax技術(shù)構(gòu)建的WEB應(yīng)用僅由少數(shù)頁(yè)面組成,大部分交互在頁(yè)面之內(nèi)即可完成, 無(wú)須頻繁切換整個(gè)頁(yè)面。
綜上所述,采用Ajax技術(shù)使得Web應(yīng)用動(dòng)態(tài)化更好,智能化程度更高, 并且提供了具有更豐富表現(xiàn)能力的Ajax UI組件。
1.2 Ajax的關(guān)鍵技術(shù)
1)XML Http Request對(duì)象
Ajax 的一個(gè)最顯著的特點(diǎn)是不需要刷新頁(yè)面即可向服務(wù)器傳輸或讀寫數(shù)據(jù), 這一特點(diǎn)主要是通過(guò)XML Http Request對(duì)象和XML Http組件來(lái)具體實(shí)現(xiàn)的。XML HttpRequest對(duì)象在眾多瀏覽器上已經(jīng)實(shí)現(xiàn)并且擁有一個(gè)簡(jiǎn)單的接口來(lái)允許數(shù)據(jù)從客戶端到服務(wù)端之間的傳遞,且這一傳遞過(guò)程并不會(huì)影響學(xué)習(xí)者的當(dāng)前操作。XML HttpRequest從名稱上看只能傳遞XML格式的數(shù)據(jù),實(shí)際上采用XML HttpRequest傳送的數(shù)據(jù)可以是任何格式。
2)JavaScript
JavaScript是一種基于對(duì)象以及事件驅(qū)動(dòng)的客戶端腳本語(yǔ)言,具有相對(duì)安全性。同時(shí)它也是一種廣泛用于客戶端Web開發(fā)的腳本語(yǔ)言,常用來(lái)給HTML網(wǎng)頁(yè)添加動(dòng)態(tài)功能,比如響應(yīng)用戶的各種操作。在Ajax中JavaScript是XML Http Request和DOM交互的紐帶。JavaScript首先通過(guò)調(diào)用 XML Http Request的屬性和方法從服務(wù)端獲取數(shù)據(jù),然后再通過(guò)調(diào)用DOM 的API來(lái)實(shí)現(xiàn)WEB頁(yè)面的內(nèi)容的更新。
3)DOM (Document object model)
文件對(duì)象模型DOM是給XML和 HTMP文件使用的一組API。它提供了文件的結(jié)構(gòu)描述,可以使頁(yè)面動(dòng)態(tài)的變化,如可以改變頁(yè)面的內(nèi)容及可見物。其實(shí)質(zhì)是連接網(wǎng)頁(yè)與腳本或程序語(yǔ)言溝通的紐帶。 WEB開發(fā)人員操作及建立文件的屬性、方法以及事件都通過(guò)對(duì)象來(lái)展現(xiàn),這些對(duì)象可以由現(xiàn)行市場(chǎng)絕大多數(shù)的瀏覽器通過(guò)腳本來(lái)取用。
4)XML
XML是一種可擴(kuò)展的、開放的、可自描述的語(yǔ)言結(jié)構(gòu), 它現(xiàn)已發(fā)展成為網(wǎng)上文檔和數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn)。XML更加容易的定義某些結(jié)構(gòu)化數(shù)據(jù), 還可以通過(guò)他和其他應(yīng)用程序?qū)崿F(xiàn)數(shù)據(jù)的交換。
2 系統(tǒng)的總體框架
本文采用Ajax(Asynchronous JavaScript and XML)設(shè)計(jì)遠(yuǎn)程教育系統(tǒng),實(shí)現(xiàn)了瀏覽器與服務(wù)器之間的異步通信,從而在不刷新瀏覽器窗口條件下滿足了用戶的操作,頁(yè)面重載次數(shù)和用戶等待時(shí)間大為減少。系統(tǒng)采用時(shí)下常用的瀏覽器/服務(wù)器模式的網(wǎng)絡(luò)設(shè)計(jì)方案,整體基于J2EE架構(gòu),在網(wǎng)絡(luò)服務(wù)器端采用的Web應(yīng)用框架是基于Ajax技術(shù)的DWR(Direct Web Remoting)與Struts結(jié)合,應(yīng)用MVC(Model-View-Control)設(shè)計(jì)模式,使系統(tǒng)統(tǒng)結(jié)構(gòu)明晰、具有很強(qiáng)的兼容性、可擴(kuò)展性、靈活性以及可操作性和可維護(hù)性。
根據(jù)具體功能可以將遠(yuǎn)程教育系統(tǒng)分為以下幾個(gè)模塊:系統(tǒng)管理、資源管理和用戶交流。其中,系統(tǒng)管理模塊實(shí)現(xiàn)系統(tǒng)管理員完成登錄用戶信息管理、教育資源整理等功能;而資源管理模塊完成上傳和下載、瀏覽與檢索資源功能;用戶交流模塊完成學(xué)習(xí)用戶即時(shí)咨詢或者在線留言、以及教師在線答疑功能。
2.1 數(shù)據(jù)持久層
遠(yuǎn)程教育系統(tǒng)應(yīng)用Hibernate進(jìn)行數(shù)據(jù)持久層的開發(fā),通過(guò)插件集合Myeclipse提供的Hibernate反向工程,為Mysql中的數(shù)據(jù)表自動(dòng)生成相應(yīng)的POJO類、DAO接口和映射文件。如針對(duì)分類表category生成category類存儲(chǔ)資源的分類信息,針對(duì)資源表source生成source類存儲(chǔ)資源的詳細(xì)信息
2.2 Action的管理
該系統(tǒng)采用Struts2.0進(jìn)行實(shí)際業(yè)務(wù)流程操作。對(duì)于資源管理部分,首先通過(guò)繼承DispatehAction創(chuàng)建相應(yīng)的Action類SourceAction,完成一組相關(guān)的業(yè)務(wù)操作。在Action中創(chuàng)建一些諸如添加操作、獲取數(shù)據(jù)列表信息等實(shí)現(xiàn)實(shí)際業(yè)務(wù)操作的方法。最后ActionServlet會(huì)根據(jù)配置文件中Action的參數(shù)配置來(lái)進(jìn)行相對(duì)應(yīng)的業(yè)務(wù)操作。
2.3 利用Ajax改進(jìn)用戶體驗(yàn)
當(dāng)有新用戶需在系統(tǒng)中注冊(cè)時(shí),采用Ajax頁(yè)面無(wú)刷新技術(shù)。在客戶端,在用戶名輸入框失去焦點(diǎn)時(shí),用戶所填信息已發(fā)送至服務(wù)器端,并判斷用戶名已存在與否,若已存在,則彈出如圖所示對(duì)話框,通過(guò)XML HttpRequest發(fā)送請(qǐng)求頁(yè)面,服務(wù)器將結(jié)果文本寫入頁(yè)面。
3 結(jié)束語(yǔ)
Ajax在遠(yuǎn)程教育支持系統(tǒng)的構(gòu)建中有諸多實(shí)用的優(yōu)點(diǎn),運(yùn)用Ajax 可以使程序?qū)τ脩舻捻憫?yīng)更加靈敏, 從而加強(qiáng)與用戶的交互性,降低帶寬要求, 提高操作處理效率,增加準(zhǔn)確性和智能性, 為用戶提供更好的教育服務(wù)。
Internet 為遠(yuǎn)程教育的發(fā)展提供了技術(shù)支持,但要把這種技術(shù)支持融合到教育過(guò)程中,還需要廣大教師和電教人員的共同努力。發(fā)揮Internet 的技術(shù)優(yōu)勢(shì),克服其在教育支持上的弱點(diǎn),實(shí)現(xiàn)智能優(yōu)化網(wǎng)絡(luò)教育,使Internet 網(wǎng)絡(luò)教學(xué)向更深更遠(yuǎn)發(fā)展。
參考文獻(xiàn):
[1] 肖國(guó)強(qiáng).基于Internet 的遠(yuǎn)程教育教學(xué)設(shè)計(jì)模型[J].電化教育研究,2001,(4) .
[2] 龔志武. 基于Internet 的遠(yuǎn)程教育傳播模式的特征及優(yōu)化[J].電化教育研究,2001,(4).
[3] Rohit Khare. Beyond AJAX: Acceleratlng Web Applicationswith Real Time Event Notification. August 2005.