鄧夢(mèng)德
摘要:Ajax(Asynchronous JavaScript and XML,即異步JavaScript和XML)是一種使用客戶端腳本與Web服務(wù)器交換數(shù)據(jù)的Web應(yīng)用程序開發(fā)方法,其最大優(yōu)勢(shì)在于不必刷新頁面,就能對(duì)頁面進(jìn)行局布更新。Ajax技術(shù)的異步調(diào)用機(jī)制使Web頁面在動(dòng)態(tài)更新時(shí)不用打斷交互流程進(jìn)行重新加載,從而給用戶帶來了更好的瀏覽體驗(yàn)。
關(guān)鍵詞:在線考試系統(tǒng) Ajax B/S XMLHttpRequest
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2014)04-0115-01
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,互聯(lián)網(wǎng)在教育領(lǐng)域得到了廣泛應(yīng)用,在線考試系統(tǒng)也在這種形勢(shì)下應(yīng)運(yùn)而生。但現(xiàn)有在線考試系統(tǒng)或基于C/S模式,存在部署問題;或采用“請(qǐng)求→響應(yīng)→刷新”的B/S模式,也存在著如下一些問題:
(1)無法實(shí)時(shí)保存考生答案,網(wǎng)絡(luò)或操作原因可能導(dǎo)致答題數(shù)據(jù)丟失;
(2)考試時(shí)間由客戶端控制,難以精確控制;
(3)局部數(shù)據(jù)的變化影響整個(gè)頁面的刷新,影響考生答題;
(4)答案?jìng)魍?wù)器端時(shí),考生必須等待;
(5)服務(wù)器的負(fù)荷較重,性能受到了影響。
B/S模式的在線考試系統(tǒng)部署成本低、結(jié)構(gòu)簡單,且系統(tǒng)易于維護(hù)和升級(jí)。然而,傳統(tǒng)的系統(tǒng)可能要求多次提取網(wǎng)頁來完成一項(xiàng)事務(wù)處理,這導(dǎo)致了用戶體驗(yàn)較差;此外,傳統(tǒng)的系統(tǒng)是基于頁面的以服務(wù)器為中心的數(shù)據(jù)傳遞模型,這種模型下,頻繁的批量數(shù)據(jù)交互會(huì)導(dǎo)致較長的等待時(shí)間和較重的網(wǎng)絡(luò)負(fù)荷。
1 Ajax技術(shù)簡介及其優(yōu)勢(shì)
Ajax是一種Web應(yīng)用程序開發(fā)的手段,Ajax技術(shù)組成包含XMLHttpRequest,DOM,XML,JavaScript,XHTML,CSS和XSLT技術(shù),Ajax是這幾種技術(shù)按一定方式組合在一起協(xié)同發(fā)揮作用的。Ajax采用XMLHttpRequest對(duì)象與Web服務(wù)器異步通信,利用DOM動(dòng)態(tài)更新Web頁面,數(shù)據(jù)的更新不必打斷用戶交互流程,用戶在向服務(wù)器發(fā)出請(qǐng)求后仍可繼續(xù)其他操作而不必等待服務(wù)器的響應(yīng)。在這一模式下,頁面自動(dòng)加載服務(wù)器端的應(yīng)答信息,避免了等待過程,異步模式能有效改善用戶的體驗(yàn),它優(yōu)于同步交互模式。
Ajax的工作原理是:用戶在Web界面上的一個(gè)操作觸發(fā)了一個(gè)HTTP請(qǐng)求到服務(wù)器,服務(wù)器進(jìn)行處理,之后再將數(shù)據(jù)返回給瀏覽器端,瀏覽器通過DOM對(duì)象局布更新頁面內(nèi)容。在基于Ajax的應(yīng)用系統(tǒng)中,用戶的HTTP請(qǐng)求被Ajax引擎處理,用戶不必等待處理請(qǐng)求的過程,可以繼續(xù)其他操作,用戶的操作與服務(wù)器的處理實(shí)現(xiàn)了異步化。
2 Ajax技術(shù)的特點(diǎn)及其流程
Ajax適合于基于表單的簡單交互、自動(dòng)更新頁面信息、多級(jí)聯(lián)動(dòng)菜單等交互數(shù)據(jù)量小的場(chǎng)合,其技術(shù)特點(diǎn)是:
(1)請(qǐng)求提交后無需等待服務(wù)器的響應(yīng),實(shí)現(xiàn)了Web應(yīng)用的異步性。
(2)Ajax引擎具有一定的數(shù)據(jù)處理能力,基于Ajax的異步Web應(yīng)用是基于應(yīng)用程序的模式。
(3)利用DOM可以局布更新頁面,Ajax能夠?qū)崿F(xiàn)一種按需求的資源獲取和數(shù)據(jù)傳遞,它能有效降低帶寬需求和服務(wù)器負(fù)擔(dān)。
(4)充分利用了客戶端的計(jì)算能力。
使用Ajax的典型流程是:1)創(chuàng)建XMLHttprequest對(duì)象;2)利用XMLHttpRequest對(duì)象向服務(wù)器發(fā)出異步請(qǐng)求;3)調(diào)用回調(diào)函數(shù)處理服務(wù)器的響應(yīng)信息。
現(xiàn)在也有很多成熟的Ajax框架,如DWR(Direct Web Remoting)、微軟公司的ASP.NET Ajax等,它們封裝了底層實(shí)現(xiàn),能提高Ajax程序開發(fā)效率。
3 服務(wù)器端程序設(shè)計(jì)的變化
由于采用Ajax技術(shù),使得服務(wù)器端的工作量大大減少,控制頁面外觀及布局的工作從服務(wù)器端轉(zhuǎn)嫁到了客戶端。服務(wù)器端只需返回客戶端所需的一定格式的數(shù)據(jù)即可,其余的工作全部由客戶端完成。這樣,大大減小了服務(wù)器端的負(fù)荷,服務(wù)器端數(shù)據(jù)量的減少,又可以加快數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)乃俣取M瑫r(shí),在客戶端,由于只返回了需要的數(shù)據(jù),而不需要整個(gè)頁面的重載,因此用戶感覺不到屏幕的刷新過程,用戶擁有了較好的體驗(yàn)。可以說Ajax技術(shù)為Web開發(fā)帶來了革命性的變化。
服務(wù)器端程序主要用來接收客戶端請(qǐng)求,與數(shù)據(jù)庫服務(wù)器進(jìn)行通信,并將從數(shù)據(jù)庫中查詢到的數(shù)據(jù)以和客戶端約定的某種方式返回給客戶端。程序中可以利用XLHttpRequest對(duì)象的responseText屬性獲得服務(wù)器返回的文本,并且以帶一定格式的字符串的形式返回給客戶端,客戶端收到這串字符后,再以約定的方式進(jìn)行處理。服務(wù)器端程序用到的程序功能主要是查詢數(shù)據(jù)庫操作。
4 結(jié)語
在使用Ajax技術(shù)后,運(yùn)行在線考試系統(tǒng)的服務(wù)器的負(fù)擔(dān)將減輕、網(wǎng)絡(luò)流量也能顯著減小、用戶等待時(shí)間縮短、體驗(yàn)更好。此外,基于Ajax技術(shù)的系統(tǒng)采用XML作為數(shù)據(jù)的載體,通過DOM解析服務(wù)器響應(yīng)數(shù)據(jù)并表現(xiàn)出來,進(jìn)一步促進(jìn)了頁面呈現(xiàn)和數(shù)據(jù)的分離、有利于設(shè)計(jì)人員的分工合作、減少頁面的修改可能引起的Web應(yīng)用程序錯(cuò)誤,從而提高應(yīng)用程序開發(fā)效率。
參考文獻(xiàn)
[1]于鵬.網(wǎng)頁設(shè)計(jì)語言教程(HTML/CSS)[M].北京:電子工業(yè)出版社,2003.
[2]胡崧.最新HTML & CSS標(biāo)準(zhǔn)教程[M].北京:中國青年出版社,2003.
[3]袁建洲,尹品.JavaScript編程寶典[M].北京:電子工業(yè)出版社,2006.
[4]柯自聰.AJAX開發(fā)精要—概念、案例與框架[M].北京:電子工業(yè)出版社,2006.endprint
數(shù)字技術(shù)與應(yīng)用2014年4期