您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 无插件网站实时广播系统的设计与实现
无插件网站实时广播系统的设计与实现摘要:本文应用数据库、动态网页、ajax等技术,设计并实现了一个能够实时向每个访问网站的客户端浏览器发送消息的广播系统。本系统可根据要求实时向所有访问该网站的浏览器发送消息,并能对这些消息进行存储和管理。本系统解决了用户在打开网页期间不能被动接收网站信息变动的问题。适合于重要信息的实时广播与发布,是网站信息发布功能是一个重要补充。本系统由基础代码设计而成,不需要任何插件,易于实现,便于推广,实用性较强。关键字:网站;无插件;ajax技术;实时广播中图分类号:TN102文献识别码:A0前言网站是存储与共享信息资源的载体和工具,网站通常以网页的形式提供信息资源。网站对信息资源的提供是一次性的和被动的,当用户在客户端发出对某个网站网页的访问请求后,该网站接受请求并将网页及其相关资源发送过来,显示在使用者客户端的浏览器中,除非用户再次发起访问,否则网站不会主动将信息资源发送过来。在这种机制下,用户打开网页以后,网站上的信息变动将会被排除在客户端的浏览器外。如果用户没有在客户端主动地刷新网页,那么网站不会主动将已经变动了的网页信息发送给客户端,这种情况不利于重要信息的实时全网站发布。本系统即是为了解决这一问题而设计开发的,本系统设计并实现了一个能够给客户端任何打开的网页上发送实时信息的广播系统,用户能够实时被动地看到网站发来的信息提示,不会遗漏网站即时出现的重要信息。本系统加强了网站信息发布的时效性,是网站信息发布功能的一个重要补充。1、系统概述在技术应用上,本系统主要采用了数据库技术、ajax技术和动态网页技术。其中,应用数据库技术主要为了实现信息的存储与管理,将待发送和巳发送的信息资源存储起来,以备后期进行查看和使用;采用ajax技术主要是为了实现网页间的异步实时通讯,应用后台进程的方式实现对服务器的访问和广播信息的获取[1];使用动态网页技术是为了实现在网页中对数据库的操作,以及信息在页面上的发送和接收,并根据情况决定是否将其显示出来以及如何显示等。本系统在实现手段上,采用动态网页脚本语言编码的方法,通过设计网页脚本代码建立几个功能模块。在使用时,只要在网页的源码中引用这些功能模块即可,不需要专门的插件。通过本系统,网站管理者可在后台给所有浏览该站网页的客户端浏览器发送实时信息,客户端能够实时接收到这些信息,实现了网站重要信息的全网实时发布。2、系统的设计本系统按功能可以划分为三个主要模块:一个是终端显示模块,一个是内容发布模块,一个是数据库管理模块。其中,终端显示模块的功能主要是将获取到的广播信息的内容显示出来,以一定的方式表现在网页上。本系统中我们采用显示层的方式来显示接收到的信息。在这个模块里,广播信息的获取要用到ajax的异步通讯技术[2],该技术采用后台进程的方式来获取信息广播模块的网页所推出的信息内容,并显示在客户端打开的网页中。内容发布模块的主要功能是获取数据库中的广播信息以及是否广播的标志数据,以确定是否要发布广播信息。如果需要发布广播信息,则将数据库中的广播信息获取并将这些信息内容推送出来。在这个模块里,要用到动态网页源码来访问数据库内容,并将数据库内容推送到广播网页中。数据库管理模块包括数据库和管理数据库内容的动态网页,后台管理人员可以通过管理网页输入要广播的信息,以及确定该信息是否要广播,并且能够管理这些信息。三个主要模块的架构方式如图1所示:其中,显示块代表终端显示模块,broadcast.asp代表内容发布模块,数据库和editdb.asp代表数据库管理模块,箭头代表数据流方向。图1系统架构图Fig.1TheSystemarchitecturediagram模块的运行机制是:终端显示模块用后台进程的方式按每个固定时间发出读取broadcast.asp广播模块推送的广播内容的请求(固定时间一般是几秒或几十秒钟),如果读取到广播内容,就将要广播的内容显示在网页的显示块中,如果读取为空,则不作显示。广播模块在终端显示模块的请求下读取数据库内容和是否广播标志,如果读取到的广播标志是需要广播,同时广播内容和已经广播的内容不同,就将这些内容推送出去;如果读到的标志是不需要广播标志,则推送的广播信息为空;如果读到的标志是需要广播,但要广播的信息和已广播的信息相同,则不作广播,这样可以避免重得广播。数据库管理模块包括editdb.asp模块和数据库,在此模块中,管理人员可以加入要广播的内容以及是否广播的标志位,同时还可以根据需要对数据库内容进行常规的管理。3、系统实现在系统实现上,我们通过动态网页脚本编码来实现所有的系统功能。在本系统中我们采用兼容性较强的asp动态源码来实现所有功能。(其它的动态网页编码方式也能实现此功能)下面,我们对三个模块的实现作以描述:3.1终端显示模块的实现终端显示模块需要实现的功能包括广播内容的读取和广播内容的显示,下面我们分别进行介绍。(1)广播内容的读取广播内容的读取需要用到ajax技术,ajax的核心对象XMLHTTPRequest,通过这个对象,可在不重载页面的情况下通过异步数据传输与Web服务器交换数据[3]。此方法可使网页向服务器发出请求并获得少量的数据信息,但不会增加服务器的进出压力[4]。下面给出使用ajax向服务器发出读取数据的请求并获得数据的关键代码,限于篇幅,我们只给出关键语句及算法,使用javascript代码编写。request=newXMLHttpRequest();//定义一个XMLHttpRequest对象functiongetInfo(){request.open(GET,broadcast.asp,true);//向服务器发出读取广播内容的请求request.onreadystatechange=updatePage();//读取完后执行广播内容的显示模块request.send(null);//向服务器发出一个不带数据的空请求。window.setTimeout(getInfo(),10000);//每10秒种执行本一次本模块}(2)广播内容的显示在广播内容的显示上,我们采用页面内嵌层的方式来显示广播信息。采用这种方式的特点是不脱离正在浏览的网页,容易引起浏览者的重视。在显示层退出方式上,我们采用了被动型退出的方式(也可采用一定时间后自动退出的方式)。显示功能我们在updatePage()子函数中实现[5],本模块的关键代码有:functionupdatePage(){显示块数据库Editdb.aspBroadcast.aspXxx.htmlif(request.readyState==4){//如果服务器完成发送响应if(request.status==200)//如果处理的状态是正常的{vargetDate=request.responseText;//将获取的广播数据赋给getDate变量if(getDate.length1)//如果广播内容不为空{document.getElementById('mscroll').style.display='block';//显示广播内容document.getElementById(showdata).innerHTML=dvHTMLEncode(getDate);}}elsealert(statusis+request.status);}}//否则给出状态信息3.2广播内容发布模块的实现内容发布模块的功能是查看广播内容表中最后一条记录的广播标志是否为真,如果为真,则将要广播的信息内容读取并推送出去,我们规定只读广播内容表的最后一条记录。以下是关键代码。setcn=server.createobject(adodb.connection)Str1=Provider=Microsoft.Jet.OLEDB.4.0;//建立数据库对象Str2=DataSource=Server.MapPath(广播信息库.mdb)//关联数据库cn.openstr1&str2//打开数据库setrst=Server.Createobject(ADODB.Recordset)rst.open广播内容,cn,1,2//打开广播内容表Rst.movelast//移到最后一条记录if(rst(flag)=1)then//如果广播标志为“真”response.write(rst(gbdata).value)//推送广播信息elseresponse.write()//否则推送信息为空endif3.3数据库管理模块的实现本系统的数据库为“广播信息库.mdb”,数据库中有二个关键表,一个是广播内容表,一个是管理人员表。管理人员表存储了管理人员的帐户及密码信息,在此不做叙述,我们只给出广播内容表的结构。广播内容表包括的主要属性有:编号、文字、附件、日期、是否广播以及备注,其中,annex字段保存的是在广播信息中可以下载的文件及其它大数据等,gbdata字段存储的是需要广播的文字内容,flag字段保存是的是否广播的标志位。数据库的选择可以选用常见的数据库,因为广播系统内容偏小,推荐使用小而简单的access数据库[6]。广播内容表的结构如下:表1广播内容表的结构Tab.1Thestructureofthebroadcastcontenttable功能编号内容附件日期是否广播备注字段名idgbdateannextimeflagremark3.4系统在网站中的应用本系统采用动态网页脚本源码来编写模块功能,用模块来实现广播系统的功能。在系统应用上,我们只需要将终端显示模块的源码应用到网站需要接收广播的网页上即可。在引用这些源码时,我们采用三种方法来实现。(1)将显示模块的源码粘贴在每个网页上。此种方法工作量大,适用于包含网页较少的网站。(2)将显示模块的源码作成模块动态网页xianshi.asp,通过粘贴“!--#includefile=xianshi.asp--”文字引入源码。这种方法适合没有统一框架的网站。(3)将显示模块的源码粘贴在网站的框架网页里。框架网页是网站中网页的公共部分,将接收广播信息的功能源码粘贴在这个位置,可以在每个使用框架的网页上实现接收广播信息的功能。这种方法适合于网页有统一框架的网站。4小结本系统的主要特点就是系统采用脚本源码实现全部功能,不需要使用插件。系统采用模块化的方法,用三个模块的动态网页源码来实现全部功能。使用时,只要将这些动态网页的文件包含进我们的网页中,或者将源代码引用或粘贴进我们的页面,就可以使我们开发的网页具有接受网站实时广播信息的功能。网站管理者可以在后台编辑广播信息,可以决定是否要对全网进行广播。所有广播过的信息都会自动存储下来,以备后来查询。对于发出的广播信息,不管用户正在浏览那个页面,客户端的浏览器都能实时接收到广播信息。本系统开发以后,已经在笔者单位的网站上使用,使用效果良好。本系统使用方便,通用性强,运行速度快,能够在第一时间让全部网站的浏览者获得重要信息,加强了网站的信息共享功能,提高了网站重要信息发布的时效性,具有较好的推广价值。参考文献:[1]郑迪文,沈立炜.基于AJAX的Web应用构件组装技术及工具[J].计算机科学,2014,(11):152-156.ZhengDi-wen,ShenLi-wei.ComponentCompositionTechnologyandToolbasedonajaxforwebapplication[J].Computerscience,2014,(11):152-156.[2]高鹏,徐小力.基于Ajax的四层架构远程监测系统设计[J].计算机工程与设计,2014,(02):196-198.GaoPeng,XuXiao-li.Designoffourlayerarchitectureremotemonitoringsystembaseonajax[J].Computerengineeringanddesign,2014,(6):196-198.[3]熊文,孙旭.Ajax技术在Web2.0网站设计中的应用研究
本文标题:无插件网站实时广播系统的设计与实现
链接地址:https://www.777doc.com/doc-2358650 .html