摘要:在AJAX之前,大部分的Web站點(diǎn)強(qiáng)制用戶進(jìn)入提交/等待/重新顯示的過程,用戶的動(dòng)作總是與服務(wù)器的處理時(shí)間同步。在Web2.0時(shí)代,AJAX作為核心技術(shù)之一,提供了與服務(wù)器異步通信的能力,從而使用戶從請(qǐng)求/響應(yīng)的循環(huán)中解脫出來,最終允許開發(fā)人員和設(shè)計(jì)人員使用標(biāo)準(zhǔn)的HTML/CSS/JavaScript創(chuàng)建“桌面風(fēng)格”的Web應(yīng)用,因此獲得廣泛認(rèn)可。文章介紹了AJAX的原理和特點(diǎn),并且結(jié)合多年教務(wù)管理經(jīng)驗(yàn),給出了基于AJAX技術(shù)的成教教務(wù)管理系統(tǒng)解決方案。
關(guān)鍵詞:教務(wù)管理系統(tǒng);AJAX;Web 2.0;JavaScript
引言
在傳統(tǒng)的Web應(yīng)用中,用戶端在頁(yè)面上填寫表單,提交表單時(shí)就向Web服務(wù)器發(fā)送一個(gè)請(qǐng)求,服務(wù)器接收并處理傳來的表單,然后送回一個(gè)新的網(wǎng)頁(yè)。這個(gè)做法浪費(fèi)了許多帶寬,因?yàn)樵谇昂髢蓚€(gè)頁(yè)面中的大部分HTML代碼往往是相同的。由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請(qǐng)求,應(yīng)用的響應(yīng)時(shí)間就依賴于服務(wù)器的響應(yīng)時(shí)間。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多。AJAX的出現(xiàn)改變了這種情況,它成為了Web開發(fā)人員的新寵。
1、AJAX概述
與傳統(tǒng)的Web應(yīng)用不同,基于異步通信原理的AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù),它使用SOAP或其他一些基于XML的頁(yè)面服務(wù)接口,并在客戶端采用JavaScript處理來自服務(wù)器的響應(yīng)。因?yàn)樵诜?wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少(大約只有原來的5%),應(yīng)用的響應(yīng)大大加快。同時(shí)很多的處理工作可以在發(fā)出請(qǐng)求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時(shí)間也減少了。使用AJAX的最大優(yōu)點(diǎn),就是能在不更新整個(gè)頁(yè)面的前提下維護(hù)數(shù)據(jù)。這使得Web應(yīng)用程序更為迅捷地回應(yīng)用戶動(dòng)作,并避免了在網(wǎng)絡(luò)上發(fā)送那些沒有改變過的信息。AJAX不需要任何瀏覽器插件,但需要讓JavaScript在瀏覽器上執(zhí)行。就像DHTML應(yīng)用程序那樣,AJAX應(yīng)用程序必須在眾多不同的瀏覽器和平臺(tái)上經(jīng)過嚴(yán)格的測(cè)試,隨著AJAX的成熟,一些簡(jiǎn)化AJAX使用方法的程序庫(kù)也相繼問世。同樣,也出現(xiàn)了另一種輔助程序設(shè)計(jì)的技術(shù),為那些不支持JavaScript的用戶提供替代功能。
應(yīng)用AJAX最主要的批評(píng)就是,可能破壞瀏覽器后退按鈕的正常行為。在動(dòng)態(tài)更新頁(yè)面的情況下,用戶無法回到前一個(gè)頁(yè)面狀態(tài),這是因?yàn)闉g覽器僅能記下歷史記錄中的靜態(tài)頁(yè)面。一個(gè)被完整讀入的頁(yè)面與一個(gè)已經(jīng)被動(dòng)態(tài)修改過的頁(yè)面之間的差別非常微妙;用戶通常都希望單擊后退按鈕,就能夠取消前一次操作,但是在AJAX應(yīng)用程序中,無法這樣做。不過開發(fā)者已想出了種種辦法來解決這個(gè)問題,其中大多數(shù)是在用戶單擊后退按鈕訪問歷史記錄時(shí),通過建立或使用一個(gè)隱藏的IFRAME來重現(xiàn)頁(yè)面上的變更。
進(jìn)行AJAX開發(fā)時(shí),網(wǎng)絡(luò)延遲——即用戶發(fā)出請(qǐng)求到服務(wù)器發(fā)出響應(yīng)之間的間隔——需要慎重考慮。不給予用戶明確的回應(yīng),沒恰當(dāng)?shù)念A(yù)讀數(shù)據(jù),或者對(duì)XMLHttpRequest的不恰當(dāng)處理,都會(huì)使用戶感到延遲,這是用戶無法理解的。通常的解決方案是,使用一個(gè)可視化的組件來告訴用戶系統(tǒng)正在進(jìn)行后臺(tái)操作并且正在讀取數(shù)據(jù)和內(nèi)容。在AJAX的應(yīng)用中,主要存在的問題是:
(1)一些手持設(shè)備(如手機(jī)、PDA等)現(xiàn)在還不能很好支持AJAX;
(2)用JavaScript做的AJAX引擎,JavaScript的兼容性和DeBug不盡人意;
(3)AJAX的無刷新重載,其頁(yè)面的變化不那么明顯,所以容易給用戶帶來困擾,用戶不太清楚現(xiàn)在的數(shù)據(jù)是新的還是已經(jīng)更新過的;
(4)對(duì)流媒體的支持沒有FLASH、Java Applet好。
2、教務(wù)管理系統(tǒng)解決方案
2.1系統(tǒng)設(shè)計(jì)目標(biāo)與原則
系統(tǒng)建設(shè)與實(shí)施的總體目標(biāo)是借助計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)和通信技術(shù),建立以計(jì)算機(jī)為工具的現(xiàn)代化科學(xué)教務(wù)管理系統(tǒng),提高教學(xué)點(diǎn)各部門協(xié)作能力和工作效率,
系統(tǒng)設(shè)計(jì)原則:充分利用原有系統(tǒng),數(shù)據(jù)庫(kù)統(tǒng)一共享,升級(jí)方便,具有一定的開放性接口,真正從各基層單位、職能部門實(shí)際需求考慮解決問題。
2.2系統(tǒng)功能設(shè)計(jì)
使用教務(wù)管理系統(tǒng)的有以下幾種成員:超級(jí)管理員、教學(xué)點(diǎn)管理員、班主任、學(xué)生、游客。
超級(jí)管理員負(fù)責(zé)建立消除修改市內(nèi)教學(xué)點(diǎn),從寧波大學(xué)成教院獲得開設(shè)專業(yè)名單,然后分配給每個(gè)教學(xué)點(diǎn),為每個(gè)教學(xué)點(diǎn)分配至少一個(gè)教學(xué)點(diǎn)管理員。
教學(xué)點(diǎn)管理員負(fù)責(zé)教學(xué)點(diǎn)內(nèi)的事務(wù),例如在本教學(xué)點(diǎn)開設(shè)的專業(yè)內(nèi)增加相關(guān)課程,為每個(gè)課程指定任課老師,在每個(gè)專業(yè)內(nèi)開設(shè)班級(jí),為本教學(xué)點(diǎn)安排多個(gè)班主任來管理相應(yīng)的班級(jí)事務(wù)。
班主任負(fù)責(zé)管理學(xué)生信息,比如繳費(fèi)情況、學(xué)習(xí)成績(jī)等等。
系統(tǒng)還具備轉(zhuǎn)專業(yè)功能,因?yàn)榭紤]到業(yè)余學(xué)生的工作情況,很有可能會(huì)發(fā)生轉(zhuǎn)專業(yè)或者改變學(xué)習(xí)方式(夜大轉(zhuǎn)函授)的問題。因此教學(xué)點(diǎn)管理員負(fù)責(zé)本教學(xué)點(diǎn)內(nèi)部的學(xué)生轉(zhuǎn)專業(yè),而超級(jí)管理員可以在教學(xué)點(diǎn)之間完成學(xué)生轉(zhuǎn)專業(yè)。
學(xué)生可以用自己的學(xué)號(hào)和口令進(jìn)入系統(tǒng)查看自己的基本情況以及學(xué)過的課程、成績(jī)、本學(xué)期的課程表、任課教師的聯(lián)系方式等等。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文