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