新建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引擎實現異步數據通信而無刷新頁面,從而減少了網絡開銷,改善了用戶體驗,增強了互動性。
作者:黃新建 單位:河南省駐馬店市委黨
本文html鏈接: http://m.35694.cn/qkh/34660.html