公务员期刊网 论文中心 正文

新建Ajax 的农业技术信息平台

新建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引擎实现异步数据通信而无刷新页面,从而减少了网络开销,改善了用户体验,增强了互动性。

作者:黄新建 单位:河南省驻马店市委党