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