国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于AJAX技術(shù)的教育資源庫(kù)建設(shè)探究

2009-04-03 04:19:10張囡囡戴心來(lái)
中國(guó)教育信息化 2009年3期

張囡囡 戴心來(lái)

摘 要:教育資源庫(kù)是教育信息化的基礎(chǔ),其建設(shè)質(zhì)量與效益問(wèn)題一直為人們所高度關(guān)注。文章主要探討基于AJAX技術(shù)的教育資源庫(kù)的建設(shè),利用先進(jìn)的AJAX技術(shù)實(shí)現(xiàn)了教育資源的搜索提示、數(shù)據(jù)校驗(yàn)、局部頁(yè)面刷新等功能,并給出了功能實(shí)現(xiàn)的關(guān)鍵代碼。

關(guān)鍵詞:AJAX 異步交互 教育資源庫(kù)

中圖分類(lèi)號(hào):TP392 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1673-8454(2009)05-0051-03

一、問(wèn)題提出

教育資源庫(kù)是教育信息化的基礎(chǔ),也是教育信息化的核心內(nèi)容,有利于學(xué)生自主、探究地學(xué)習(xí),提高學(xué)習(xí)效率,改善學(xué)習(xí)的效果。由于教育資源包羅萬(wàn)象、內(nèi)容豐富多彩、形式多種多樣,同時(shí)存在大量不同層次、不同屬性的資源,因此需要一個(gè)高效的、能夠支持一定復(fù)雜性需求的工具進(jìn)行管理,教育資源庫(kù)就是這樣的一種工具。[1]

目前的教育資源庫(kù)大多采用傳統(tǒng)Web應(yīng)用模型,瀏覽器與服務(wù)器的通信是同步的,用戶(hù)觸發(fā)一個(gè)HTTP請(qǐng)求到服務(wù)器,服務(wù)器對(duì)其進(jìn)行處理后再返回一個(gè)新的HTTP頁(yè)到客戶(hù)端,每當(dāng)服務(wù)器處理客戶(hù)端提交的請(qǐng)求時(shí),客戶(hù)端只能空閑等待,既浪費(fèi)了帶寬及服務(wù)器資源,同時(shí)也會(huì)影響學(xué)習(xí)者學(xué)習(xí)的積極性和學(xué)習(xí)效果。為了解決這一問(wèn)題,我們?cè)诮逃Y源庫(kù)建設(shè)中嘗試采用AJAX技術(shù)。AJAX技術(shù)能實(shí)現(xiàn)瀏覽器和服務(wù)器的異步通信,大大減輕服務(wù)器的負(fù)擔(dān),提高了教育資源的可交互性和應(yīng)用的執(zhí)行效率。

二、AJAX技術(shù)

1.AJAX概述

AJAX的全稱(chēng)為異步JavaScript和XML(即Asynchronous JavaScript and XML),是多種技術(shù)的一種綜合應(yīng)用,包括JavaScript、XHTML、CSS、DOM、XML和XSTL,以及最重要的一個(gè)對(duì)象XMLHttpRequest。其中,使用XHTML和CSS實(shí)現(xiàn)數(shù)據(jù)信息的統(tǒng)一化、標(biāo)準(zhǔn)化顯示;使用DOM實(shí)現(xiàn)瀏覽器端豐富的動(dòng)態(tài)顯示效果以及與服務(wù)器端的交互;使用XML和XSTL進(jìn)行瀏覽器和服務(wù)器兩端的數(shù)據(jù)信息交換與處理;使用XMLHttpRequest對(duì)象進(jìn)行瀏覽器和服務(wù)器端的異步數(shù)據(jù)讀取;使用JavaScript腳本實(shí)現(xiàn)對(duì)所有數(shù)據(jù)的進(jìn)一步處理。

2.AJAX的運(yùn)行原理

使用AJAX后的Web應(yīng)用程序看來(lái)更像是一個(gè)桌面應(yīng)用程序,其原理相當(dāng)于在客戶(hù)端和服務(wù)器端之間加了一個(gè)中間層——AJAX引擎,實(shí)現(xiàn)了客戶(hù)端和服務(wù)器之間的異步交互,如圖1所示。使用AJAX后,當(dāng)用戶(hù)需要從服務(wù)器端讀取數(shù)據(jù)時(shí),由AJAX引擎代為向服務(wù)器提交請(qǐng)求。具體過(guò)程如下:當(dāng)用戶(hù)在Web頁(yè)面上進(jìn)行某項(xiàng)操作(如單擊一個(gè)按鈕),觸發(fā)一個(gè)JavaScript事件。此時(shí),相應(yīng)的事件處理函數(shù)將被調(diào)用。在這個(gè)函數(shù)中,XMLHttpRequest對(duì)象被初始化,并根據(jù)情況向服務(wù)器發(fā)出異步通信請(qǐng)求。服務(wù)器接受到用戶(hù)請(qǐng)求后,根據(jù)URL地址判斷用戶(hù)行為并進(jìn)行響應(yīng),然后將響應(yīng)結(jié)果以HTML/XHTML/XML的形式打印出來(lái)。當(dāng)XMLHttpRequest檢測(cè)到服務(wù)器已經(jīng)將響應(yīng)結(jié)果打印出來(lái),即將響應(yīng)結(jié)果以文本或者XML文檔的形式返回,用JavaScript函數(shù)來(lái)處理服務(wù)器返回的數(shù)據(jù),最終更新頁(yè)面內(nèi)容。

三、AJAX在教育資源庫(kù)中的應(yīng)用

教育資源庫(kù)主要具有資源的收集、存儲(chǔ)、預(yù)覽、導(dǎo)航、檢索、瀏覽、下載以及組織與管理等功能。教育資源庫(kù)建設(shè)主要是為了更好地實(shí)現(xiàn)教育資源共享,加快教育信息化步伐,使教育資源具有時(shí)效性、易用性、高效性。在教育資源庫(kù)建設(shè)中要充分考慮用戶(hù)的切身需求,努力提高教育資源的利用率,同時(shí)還要充分利用相關(guān)知識(shí)和技術(shù),提高教育資源的應(yīng)用效果。AJAX技術(shù)自2005年被提出以來(lái),以其先進(jìn)的技術(shù)和強(qiáng)大的功能得到了一些大型網(wǎng)站(如Google)的大力推廣與使用。我們將AJAX技術(shù)引入到教育資源庫(kù)開(kāi)發(fā)中,全面提升了資源的處理效率,增強(qiáng)了資源的利用率。

1.搜索提示

教育資源庫(kù)采用B/S結(jié)構(gòu),以文件管理系統(tǒng)與關(guān)系數(shù)據(jù)庫(kù)相結(jié)合的方式對(duì)教育資源進(jìn)行存儲(chǔ)和管理,資源的相關(guān)屬性保存在數(shù)據(jù)庫(kù)中,具體資源以文件的形式存儲(chǔ)在硬盤(pán)中,它們之間通過(guò)數(shù)據(jù)庫(kù)中的名稱(chēng)和存儲(chǔ)路徑來(lái)建立關(guān)聯(lián)。

教育資源數(shù)量龐大,如何更快、更準(zhǔn)確地得到想要的信息是教育資源庫(kù)建設(shè)者所面臨的一個(gè)重要問(wèn)題。借助AJAX技術(shù)實(shí)現(xiàn)搜索提示,用戶(hù)可以像使用桌面程序一樣,無(wú)需提交、刷新頁(yè)面就可以獲得相應(yīng)的參考提示,這種智能化、人性化的功能為用戶(hù)節(jié)省了時(shí)間。

搜索提示的基本原理是,當(dāng)用戶(hù)輸入完一個(gè)關(guān)鍵字時(shí),觸發(fā)相應(yīng)的鍵盤(pán)事件后,便向服務(wù)器端發(fā)送請(qǐng)求,服務(wù)器端根據(jù)用戶(hù)當(dāng)前輸入的關(guān)鍵字,在數(shù)據(jù)庫(kù)中搜索相關(guān)的關(guān)鍵字信息,取出數(shù)據(jù)并及時(shí)返回給客戶(hù)。在資源檢索中,搜索提示工作的基本原理如圖2所示。

當(dāng)用戶(hù)在瀏覽器客戶(hù)端界面輸入搜索關(guān)鍵字時(shí),觸發(fā)onkeyup事件,該事件會(huì)調(diào)用searchSuggest()函數(shù),該函數(shù)向服務(wù)器發(fā)送XMLHttpRequest請(qǐng)求,服務(wù)器端接收到客戶(hù)端的請(qǐng)求后,根據(jù)用戶(hù)輸入的關(guān)鍵字,在教育資源數(shù)據(jù)庫(kù)中通過(guò)查詢(xún)資源表得到相關(guān)數(shù)據(jù),并將查詢(xún)結(jié)果保存到向量中,最后將向量中的數(shù)據(jù)組織成客戶(hù)端需要的格式并返回給客戶(hù)端,返回后的數(shù)據(jù)通過(guò)handleSearchSuggest()函數(shù)來(lái)處理。其關(guān)鍵代碼如下:

//創(chuàng)建XMLHttpReuqest對(duì)象

var searchReq = false;

function createAjaxObj() {

if (window.XMLHttpRequest) {

//如果為Mozilla,Safari瀏覽器

searchReq =new XMLHttpRequest();

if (searchReq.overrideMimeType) { searchReq.overrideMimeType("text/xml");}

}else{ if (window.ActiveXObject) {//如果為IE瀏覽器

try { searchReq = new ActiveXObject("Mxxml2.XMLHTTP");

}catch (e) {

try { searchReq = new ActiveXObject("Microsoft.XMLHTTP");}catch (e) { }

}}}return searchReq;}

//向服務(wù)器發(fā)送請(qǐng)求

function searchSuggest() {

if (searchReq.readyState == 4 || searchReq.readyState == 0) {var str = document.getElementById ("txtSearch").value;

searchReq.open("GET", "search?search=" + str, true);

searchReq.onreadystatechange = handleSearchSuggest;

searchReq.send(null); }}

//處理返回?cái)?shù)據(jù)函數(shù)

function handleSearchSuggest() {

if (searchReq.readyState == 4) {

var ss = document.getElementById ("search_suggest");

ss.innerHTML = "";

var str = searchReq.responseText .split(" ");

setSearch(this.innerHTML);"′;

suggest += class="suggest_link">′+ str[i] + ′</div>′;

ss.innerHTML += suggest;

}}}

程序運(yùn)行效果如圖3所示。當(dāng)用戶(hù)在瀏覽器頁(yè)面輸入關(guān)鍵字“教育”時(shí),會(huì)得到與“教育”相匹配的提示信息。雖然瀏覽器本身也有搜索提示功能,但這是兩種截然不同的技術(shù)。瀏覽器主要是方便用戶(hù)操作,起到一個(gè)簡(jiǎn)單記憶的功能。當(dāng)用戶(hù)輸入關(guān)鍵字時(shí),瀏覽器并沒(méi)有向任何服務(wù)器進(jìn)行數(shù)據(jù)查詢(xún),只是在用戶(hù)曾輸入的關(guān)鍵字中進(jìn)行匹配而給出提示。一旦用戶(hù)清除瀏覽器的歷史記錄,那么將得不到任何提示信息。而通過(guò)AJAX技術(shù)可以實(shí)時(shí)從教育資源庫(kù)中得到數(shù)據(jù)并給出提示,使用戶(hù)更快、更好地搜索到自己想要的信息,不但具有減少用戶(hù)輸入時(shí)間的功能,而且更具智能化、人性化。

2.數(shù)據(jù)校驗(yàn)

在教育資源庫(kù)中經(jīng)常要用到數(shù)據(jù)校驗(yàn)。例如,用戶(hù)在線注冊(cè)時(shí),我們要保證每個(gè)用戶(hù)的登錄名具有唯一性,所以需要添加一個(gè)檢查用戶(hù)名是否唯一的功能。

傳統(tǒng)的Web程序?qū)τ跀?shù)據(jù)校驗(yàn)通常有兩種方式:一是整個(gè)表單提交后由后臺(tái)服務(wù)程序檢測(cè),如用戶(hù)名已被注冊(cè)則重新回到提交前的頁(yè)面進(jìn)行新的用戶(hù)名設(shè)置;二是用戶(hù)可以點(diǎn)擊相應(yīng)的驗(yàn)證按鈕進(jìn)行校驗(yàn),但需要打開(kāi)一個(gè)瀏覽器窗口或者對(duì)話(huà)框??梢?jiàn)這兩種方式既耗時(shí)又耗資源。利用AJAX技術(shù)可以進(jìn)行異步數(shù)據(jù)校驗(yàn),校驗(yàn)結(jié)果由AJAX引擎顯示在頁(yè)面適當(dāng)?shù)奈恢?,整個(gè)校驗(yàn)過(guò)程不需要有任何動(dòng)作,更不需要重新加載整個(gè)頁(yè)面,而且不會(huì)影響用戶(hù)填寫(xiě)其他信息或進(jìn)行其他操作,迅速流暢又不會(huì)增加服務(wù)器的負(fù)擔(dān)。

3.局部頁(yè)面刷新

在教育資源庫(kù)中,用戶(hù)經(jīng)常需要瀏覽資源信息。傳統(tǒng)的Web程序通常是用戶(hù)點(diǎn)擊某個(gè)資源,向服務(wù)器提交查詢(xún)請(qǐng)求,系統(tǒng)打開(kāi)一個(gè)新的頁(yè)面,返回資源的相關(guān)信息,這期間大量重復(fù)數(shù)據(jù)被加載。而采用AJAX技術(shù),在用戶(hù)點(diǎn)擊資源時(shí),向服務(wù)器發(fā)出的是異步提交請(qǐng)求,系統(tǒng)只返回需要的信息并顯示在當(dāng)前頁(yè)面,實(shí)現(xiàn)了局部頁(yè)面刷新,從而避免了數(shù)據(jù)的重復(fù)加載。

四、結(jié)束語(yǔ)

教育資源庫(kù)是教育信息化的基礎(chǔ),是需要長(zhǎng)期建設(shè)與維護(hù)的系統(tǒng)工程。在教育資源庫(kù)建設(shè)中,合理利用AJAX技術(shù)使得程序?qū)τ脩?hù)的響應(yīng)更加迅速,進(jìn)而加強(qiáng)了與用戶(hù)的交互性,提高了處理效率,減少了資源的消耗,避免了大量重復(fù)數(shù)據(jù)的出現(xiàn),更具人性化和智能化,在一定程度上提高了系統(tǒng)的性能,為用戶(hù)提供了更好的教育服務(wù)。

參考文獻(xiàn):

[1]何克抗,吳娟.信息技術(shù)與課程整合[M].北京:高等教育出版社,2007.

[2]張志潔等.AJAX技術(shù)及其在智能協(xié)作教學(xué)平臺(tái)中的應(yīng)用[J].現(xiàn)代遠(yuǎn)距離教育,2007(5):64-66.

[3]張豪鋒,岑俊杰.基于AJAX技術(shù)的網(wǎng)絡(luò)課程可交互性研究[J].現(xiàn)代遠(yuǎn)距離教育,2008(1):70-72.

[4]王沛,馮曼菲.征服AJAX Web 2.0開(kāi)發(fā)技術(shù)詳解[M].北京:人民郵電出版社,2006.

鄂温| 米林县| 竹山县| 西充县| 襄垣县| 阳城县| 汪清县| 莱芜市| 绍兴县| 庆阳市| 信宜市| 磴口县| 潮州市| 石嘴山市| 日照市| 城固县| 沧源| 如东县| 房产| 隆林| 股票| 钦州市| 兴文县| 安溪县| 丰原市| 丽江市| 白水县| 大冶市| 喀喇沁旗| 板桥市| 孟州市| 二连浩特市| 高青县| 永宁县| 安陆市| 彰化市| 五原县| 竹溪县| 铅山县| 米脂县| 靖边县|