新建Ajax的農業技術資訊平臺論文
一、基於Ajax的多層體系結構
與傳統的Web應用不同,Ajax採用非同步互動過程,從而改變了同步互動過程中的“處理—等待—處理—等待”的模式,實現Web頁面不用打斷互動過程,動態地更新頁面區域性資料。Ajax技術按需取資料、節省伺服器頻寬和減輕伺服器處理負擔。Ajax技術的關鍵是添加了一箇中間層在服務層和客戶層之間,使資料的非同步訪問得以實現。客戶端可以同時向伺服器端發出多個請求,不用重新整理Web頁面就能實現資料的動態實時更新。基於Ajax的多層體系結構。基於Ajax技術的非同步通訊改善了動態事件的響應機制,極大地提高了平臺的使用者體驗效果,並彌補了B/S架構的不足。
二、系統設計
1、功能模組的劃分農業技術資訊平臺分為系統管理模組、技術展示模組、農業技術供求資訊模組、綜合查詢模組、農業技術交易模組、跟蹤諮詢服務模組、經驗探討模組及幫助8個功能模組。系統管理模組包括使用者管理、許可權管理及資料的維護。技術展示模組提供一些技術資料、影片材料供使用者下載。農業技術供求資訊模組是主要模組,完成使用者供求資訊查詢、釋出,供求資訊對接。供求資訊對接即供求配對,提交資訊時系統自動查詢相應配對資訊並彈出告知,供求直接網上對接。如果配對不成功,當後續有相關配對資訊時採用嵌入簡訊釋出的方式通知使用者。為了使資訊釋出更便捷,也考慮農民首次使用的困難,資訊釋出提供基於例項的模式,可在例項的基礎上更改釋出。綜合查詢模組是站內的綜合資訊查詢,支援模糊和準確查詢。農業技術交易模組提供交易平臺。跟蹤諮詢服務模組包括跟蹤、諮詢和服務3部分。跟蹤主要採用簡訊模式,在技術交易成立時嵌入系統提示簡訊,根據技術自身實際在合適的時間將相關內容發給相關人。使用者反饋可採用簡訊或留言的方式提供給技術提供方。諮詢包括線上諮詢和留言。服務包括病蟲害、土壤、政策、天氣等資訊公告及農技百科。經驗探討模組採用BBS模式,供使用者進行經驗探討。幫助模組一方面提供系統應用幫助,另一方面使用者可透過電話、簡訊等告知需求,由系統管理人員幫助其完成需求。
2、多媒體技術應用多媒體技術就是具有整合性、實時性和互動性的計算機綜合處理聲音、文字、影象的多種媒體資訊的技術。該平臺製作過程中大量採用多媒體技術,網頁內容用三維動畫、圖片、影片等形式來展現,更生動、形象,易於被廣大農民接受。農業技術往往涉及大量的概念、定義,比較抽象、難以理解、不易記憶,且操作性強,需要大量的實踐才能掌握。鑑於此,平臺充分運用了近年來新興的傳媒方式———影片點播。透過影片點播,打破了傳統的下載在時間和空間上的限制,實現音訊、影片等多媒體資料隨時隨地的點播。這些多媒體資訊在網路上的傳輸主要採用了實時流協議(Realtimestreamingprotocol,RTSP)。
3、層疊樣式表的應用層疊樣式表(Cascadingstylesheets,CSS)是一系列格式規則,用以控制網頁內容的外觀。用CSS樣式可以靈活並很好地控制網頁外觀,控制的範圍包括從精確的佈局定位到特定的字型和樣式。CSS樣式可以控制許多用HTML無法控制的屬性。平臺設計中透過使用CSS樣式確保多個頁面中字型的型別、顏色、畫素單位保持一致,使網頁讓使用者看起來整齊、美觀、大方。
4、資料庫設計農業技術資訊平臺的關鍵是資訊的收集、處理、對接和檢索。該平臺的資料結構採用關係模型,採用PowerDesigner軟體進行資料庫的設計,然後匯入到SQLSerer資料庫中。在資料庫的設計過程中,既要考慮資料的完整性,又要避免冗餘、不一致的資料,避免不規則的新增、修改和刪除。不規則的新增、修改和刪除是資料操作的問題,使用者繁多、文化程度不同,從使用者入手避免資料誤操作是不可能的,那就需要從系統入手,也即需要合理設計資料庫。設計時要遵循關係型資料庫的規範化,即要滿足第1正規化(無重複的屬性)、第2正規化(非主屬性非部分依賴於主碼)和第3正規化(屬性不依賴於非主屬性)。以供求部分的資料庫表為例,在供應和求購資訊表中都設有有效期限,系統定期據此將無用資料刪除,避免了無用資料長期佔用資源,並減少了系統管理員的勞動量。
三、基於Ajax技術的系統實現
農業技術資訊平臺採用基於Ajax的多層體系結構,用JAA作為主要開發語言,輔以HTML、CSS、JaaScript等標記、指令碼語言,選用Tomcat作伺服器,資料庫管理系統使用的`是功能強大的易於維護的SQLSerer,用SybasePowerDesigner進行資料庫設計。在資料校驗、按需求獲取的級聯選單、多級下拉列表框、動態過載表單內容等方面採用了Ajax技術。Ajax採用非同步互動,透過XMLHttpRequest物件動態地更新頁面區域性資料。XMLHttpRequest物件可以實現傳送和接收超文字傳輸協議(HypertextTransferProtocol,HTTP)的請求與響應資訊,從而實現客戶端與伺服器非同步通訊功能。XMLHttpRequest物件建立如下:arxmlHReq=false;fuctionsetXMLHttpRequest{if(window.XMLHttpRequest)//Mozilla/Fire-Fox瀏覽器{xmlHReq=newXMLHttpRequest;}elseif(window.ActieXObject)//IE瀏覽器{try{xmlHReq=newactieXObject("Msxml2.XMLHTTP");}catch(e){try{xmlHReq=newactiexobject("Microsoft.XMLHTTP");}catch(e)建立XMLHTTPRequest物件後,就可以使用XMLHTTPRequest物件的方法完成相應的操作,XMLHTTPRequest物件的方法主要有Send、Open、abort、getAllResponseHeaders等。要把請求傳送到伺服器,需要使用open和send方法。用Open和send方法向伺服器發出請求取得XML資料程式如下:functionsendRequest(url)//傳送請求函式{setXMLHttpRequestxmlHReq.Open("GET",url,true);//true表示請求是非同步的xmlHReq.onreadystatechange=proResfun;//指定響應函式xmlHReq.send(null);//將請求送往伺服器}在非同步方式下工作,需要設定非同步的事件處理函式。onreadystatechange是XMLHTTPRequest物件的屬性之一,存有處理伺服器響應的函式,它是狀態改變的事件觸發器。XMLHTTPRequest物件的屬性還有readyState、responseText、responseXML、status、statusText。readyState屬性存有伺服器響應的狀態資訊。每當readyState改變時,onreadystatechange函式就會被執行。下面是用來檢查MLHTTPRequest文件是否已經解析完畢的proResfun。functionproResfun{if(xmlHReq.readyState==4&&xmlHReq.status==200)//檢查是否正確取得資料{xmldoc=xmlHReq.responseXML;doSthing;//實現瀏覽器使用者介面中的功能}else{window.alert("頁面有異常。")}}至此,取得了XML格式的響應資料。下面就可以在doSthing方法中實現瀏覽器使用者介面中的功能了。
四、小結
採用基於Ajax的多層體系結構,以JAA為主要開發語言,採用SQLSerer資料庫,設計了一簡單、實用、高效的農業技術資訊平臺系統。透過在資訊釋出時系統自動查詢,或透過系統嵌入的手機簡訊,實現了資訊自動配對,減少了對計算機網路的依賴,也使後期跟蹤服務更方便有效。為擴大使用群體、提高系統的易用性,設計中採用了基於例項的資訊釋出方式。需要在客戶端和伺服器間頻繁傳送少量的資料時,使用Ajax引擎實現非同步資料通訊而無重新整理頁面,從而減少了網路開銷,改善了使用者體驗,增強了互動性。