基于ajax的网络聊天室本科学位论文.docx
- 文档编号:13140307
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:60
- 大小:357.62KB
基于ajax的网络聊天室本科学位论文.docx
《基于ajax的网络聊天室本科学位论文.docx》由会员分享,可在线阅读,更多相关《基于ajax的网络聊天室本科学位论文.docx(60页珍藏版)》请在冰点文库上搜索。
基于ajax的网络聊天室本科学位论文
基于Ajax的网络聊天室的设计与实现
摘要
如何更好地与他人沟通是人们普遍关心的问题。
人们通过网站可以展示产品,了解与用户和合作伙伴的最新发展,交流和沟通,建立联系和开展电子商务。
在线聊天系统作为一个网站的重要组成部分,为人与人之间的交流和交往提供了一个平台。
传统的互联网聊天室,以显示在线用户和用户信息的实时传送,需要定期刷新页面。
刷新页面,不仅要占用一定的系统资源和网络带宽,也会出现“白屏”现象,这对良好的用户体验是非常不利的。
Ajax是一个新的web应用,使用Ajax技术的发展不仅解决了页面刷新带来的白屏问题,也减少了对服务器和网络传输的负载。
本系统采用了AAjax技术,数据库服务器端采用了SQLServer2008作为数据库的开发,用C#语言编写的无刷新的网络聊天室。
关键词:
Ajax;网络聊天室;无刷新;异步交互
DESIGNANDIMPLEMENTATIONOFAJAX-BASEDCHATROOM
Abstract
Howtocommunicatebetterwithothersisthegeneralinterest.Throughthewebsitecanshowtheproducts,thelatestdevelopments,exchangeandcommunicationwithusersandpartnerstoestablishcontactsande-commerce.Onlinechatsystemconstituteanimportantpartofthesite,toprovideaplatformforexchangesandcontactsbetweenpeople.
TraditionalInternetchatroomsinordertodisplayonlineusersandusermessagessentinrealtime,theneedtoregularlyrefreshthepage.Pagerefreshnotonlytotakeupsomesystemresourcesandnetworkbandwidth,butthereisalsoa"blackandwhite"phenomenonisverydetrimentaltoagooduserexperience.Ajaxisanewwebapplication,thechatroomsystemusingAjaxtechnologydevelopmentnotonlysolvedthepagerefreshesbringblackandwhiteissues,butalsoreducetheloadontheserverandnetworktransmission.
ThesystemusestheAAjaxtechnology,databaseserver-sideSQLServer2008asdatabasedevelopment,writteninC#refreshnetworkchatrooms.
KeyWords:
Ajax;Internetchatrooms;Nofresh;Asynchronousinteraction
目录
摘要I
AbstractII
1绪论1
1.1系统现状1
1.2国内外主要研究成果1
1.3课题的主要内容及章节安排3
2系统开发环境和关键技术3
2.1系统的开发环境4
2.2关键技术4
2.2.1A技术4
2.2.2Ajax技术6
2.2.2AAjax技术11
2.2.3数据库技术11
2.2.4C#语言12
3系统分析与设计12
3.1系统分析13
3.1.1聊天室功能需求分析13
3.1.2聊天室功能性能分析13
3.2系统运行环境13
3.3系统设计13
3.3.1系统结构13
3.3.2实体及数据库实现15
3.3.3后台功能模块15
3.3.4流程图15
3.3.5客户端与服务器端的相关设计16
4系统实现18
4.1聊天界面18
4.2登录界面18
4.3前台界面19
5系统测试20
5.1测试意义20
5.2测试目标20
5.3测试方法20
5.4测试用例20
结论22
致谢24
1绪论
1.1系统现状
在人们的生活中,信息技术的飞速发展正在发生深刻变化。
人与人之间的对话是不再局限于面对面,网上聊天室提供了信息交流的另一个地方。
传统的聊天室,以显示在线用户和用户信息的实时传送,需要定期刷新页面。
刷新页面,不仅要占用一定的系统资源和网络带宽,也会出现“白屏”的现象,这对良好的用户体验是非常不利的。
而使用Ajax技术开发的聊天室,不仅可以解决页面刷新带来白屏的问题,也减少了对服务器和网络传输的负载。
随着互联网应用的普及,web应用以其良好的扩展性、易于部署、维护方便等优点逐渐成为软件开发的主流。
早期的Web应用采用的是同步交互过程【1】,即用户首先向Web服务器提交一个请求或行为呼叫,服务器接收到客户请求后执行相应处理操作,最后向用户返回处理结果。
服务器在处理请求时【2】【3】,用户处于等待状态,有时如果超过了服务器响应时间,甚至返回“页面不可用”等提示。
另外,当我们只想改变页面的部分数据时,用户的请求会导致服务器重新返回整个页面内容,包括那些没有改变的数据,这不但增加了网络传输的数据量,还影响了客户端的响应时间,为什么我们不能“按需”获取数据呢?
Ajax技术可以很好的解决上述web应用中存在的问题。
Ajax技术是Web2.0的核心之一,本质上是一种RIA(RichIllternetApplication)技术。
RIA是指具有高度互动性和丰富用户体验的网络应用程序,它既具有消息确认、无刷新页面之下提供快捷的界面响应、拖放式等桌面应用程序的特点,同时又具有部署简单、跨平台等Web应用程序的特点。
Ajax技术提供了客户端与服务器异步通信的能力【6】,从而使用户从请求一响应一再请求【3】的循环中解脱出来,同时降低了网络传输的数据量,提高了客户端的响应速度,改善了用户使用体验,使得web应用可以接近甚至达到类似“桌面应用”的效果。
而Ajax有上述优势,例如GoogleSuggest,Gmail,GoogleMap等等交互程序中都使用了异步通讯技术。
不知不觉中,Ajax应用程序占据了整个网络的每一个角落。
纵观所有的应用程序,更好的用户体验是其的共同目标,在浏览器中实现桌面用户界面体验是Web开发的一种趋势。
Ajax技术从谷歌到IBM,甲骨文,雅虎,BEA系统公司,红帽,Novell公司获得业界众多的IT巨头的支持,其快速发展是值得期待的。
技术创新和标准化是Ajax技术发展的必由之路,而W3C已成立了工作小组,专门从事Ajax的规范发展工作。
1.2国内外主要研究成果
Ajax技术的精髓是用异步交互替代了传统的同步交互,所以当用户操作时间大于服务器响应时间的时候,使用Ajax的效果非常明显。
而当程序性能的瓶颈在于服务器响应时间的时候,Ajax无法解决程序运行缓慢的问题。
因此,Ajax是更适合在网络上的互动频繁轻量级的应用程序。
在Ajax开发的应用程序中,Google公司成功将Ajax技术应用到他们的商业产品。
Google地图和GoogleSuggest都应用了这项技术。
当用户使用谷歌地图查看地图(包括地图的缩放和平移地图),并没有提交任何请求到服务器,你就可以浏览到地图的各个部分。
在这里,它是Ajax技术的应用,使得地图是不刷新的方式,但每个显示原始数据的基础上以增量方式显示。
在这种方式下,用户觉得就像是在自己的计算机上查看本地的地图。
微软也在积极开发Ajax应用程序:
它将Ajax技术应用到的MSNSpace上面。
当用户使用MSNSpace提交回复评论时,浏览器会暂时停顿,然后刷新显示用户提交的评论,这是应用了Ajax的原理。
目前,Ajax应用最普遍的领域是GIS-Map方面。
GIS的区域搜索强调快速响应,Ajax的特点正好符合这种要求。
在应用Ajax技术开发过程当中,处于核心位置的Ajax引擎实际上是一些复杂的JavaScript程序【7】。
随着网络应用和界面表现的复杂化,使用面向过程的JavaScript语言描述表现逻辑将会变得很困难。
同时,JavaScript的兼容性和调试都会成为使用Ajax技术的一个障碍。
为了解决这些问题,开发人员已经开发出了一些基于Ajax技术的框架,方便了开发人员使用,有利于Ajax技术的进一步推广。
当然,任何技术都是有局限性的,Ajax也不例外。
Ajax更新页面无需刷新重载【9】【10】,这也使传统的一些用户交互行为变得不可用,如后退、前进和刷新等。
另外,移动设备(如手机、PDA等)现在还不能很好的支持Ajax,Ajax对流媒体的支持也没有JavaApplet和Flash这样成熟的技术好。
因此,一些辅助的平台和插件的开发也将是Ajax技术应用当中重要的一部分。
Ajax把大量的运算从服务器转移到了客户端浏览器,这意味着浏览器将承受更大的负担,而不再是简单的文档显示功能【8】。
聊天室作为一个能够吸引人气的栏目,在现代网络应用中随处可见。
它的作用是给不同的用户提供一个交流信息的场所。
用户在聊天室中可以发布信息,就如同所有用户都在一个个真正室内聊天一样。
传统的聊天室程序一般设置在客户端的网页自动刷新。
刷新在这样的数据会带来一些缺点,例如:
每次刷新服务器应该重新获取数据【14】,大大提高了服务器上的负载,此刷新过程正在进行,这将是非常严重的影响服务器的性能;每次刷新过程中会产生大量无用数据,不断刷新页面,用户在客户端方面,将导致屏幕闪烁。
解决屏幕闪动最重要的一条原则就是,将改动的地方显示到客户端,而那些不需要改动的地方则尽量不要让用户感觉到变化。
一个更好的解决办法是使用Ajax技术的无刷新聊天室应用【16】。
现在的聊天室通过四个主要功能模块实现了聊天室中用户登录、注销、环境设置、发送消息、读取消息和查看在线用户列表等。
聊天室系统为用户提供了聊天场所,操作员可对后台网站的风格、广告链接等进行设置;用户可以根据个人的习惯选择字体、文字颜色和表情等;前台聊天室具有私聊的功能,私聊的内容仅供私聊双方查看;聊天者可自己手动清除聊天内容。
操作员可通过客户端处理模块获取界面元素从而得到聊天内容或与服务器交互更新客户端页面响应用户事件。
服务器端响应模块可提供聊天室界面元素信息获得提交数据或数据合法性的验证。
1)基于CGI
2)基于JavaScript
3)基于ACTIVEX
4)基于ASP的实现方案等
在此列举了这四种方案的独到之处,场合选用,及各自所存在的缺点。
PHP(PersonalHomePage)是英文“超级文本预处理语言”(PHP:
HypertextPreprocessor)的缩写,是RasmusLerdorf推出的一种跨平台无缝运行服务器端的HTML嵌入式脚本语言,它混合了C,JAVA,Perl语言,主要用于Web服务器端的计算以及文字、文本处理。
其最强大和最重要的特征是数据库集成层,可完成一个含有数据库的网功能的网页。
MySQL是一个小型关系型数据库管理系统,其拥有体积小、速度快、总体拥有成本低,开放源码,支持多种操作系统,支持多线程,充分利用CPU,优化SQL提高查询速度提供TCP/IP、ODBC和JDBC等多种数据库连接途径的优点。
就是把每个连上同一网页的用户传送的发言数据储存起来,然后将所有的发言数据传给每一用户。
也就是说,用数据库汇集每个人的发言,并将数据库中的数据传给每一个人就实现了聊天室的功能。
为了优化聊天室的后台数据库聊天室系统需要五个数据表:
1)聊天信息表(chatInfo)
2)用户信息表(UserInfo)
3)网站风格信息表(Stylfo)
4)广告信息表(AdvInfo)
5)广告链接表(AdvLink)
1.3课题的主要内容及章节安排
现在,多渠道的信息源、网络化的数据分布、快捷医用的交互操作、智能化的分析决策等特点越来越成为衡量优良聊天软件的关键,因此,该网络聊天室是基于C#语言运行于VS平台上,利用的技术主要是A,使用配置文件作为数据管理。
为实现和方便客户端间通信,在客户端进行了人性化的界面设计,用户可以注册号码,登陆界面,具有私聊消息功能。
第1章对本次课题的背景及意义、课题现状、课题内容与目标进行了深入的阐述。
第2章介绍了系统的开发环境和关键技术,例如A技术,数据库开发,C#等等。
第3章是系统分析与设计。
将对系统进行需求分析,对组成系统的功能模块进行划分,对每个模块将要实现的功能进行阐述和说明。
对系统的结构进行设计,设计共享数据结构。
第4章是系统实现,分别介绍了服务器端和客户端每个功能的执行过程,画出主要模块的流程图。
第5章介绍系统测试。
最后,对本设计进行归纳总结,全面阐述本次设计中的体会。
2系统开发环境和关键技术
2.1系统的开发环境
VS2010开发工具(如图1.1)以及MicrosoftSQLServer2008(如图1.2)
图1.1VS2010开发工具
图1.2SQLServer2008
2.2关键技术
2.2.1A技术
ASP.NET的前身ASP技术,是在IIS2.0上首次推出,当时与ADO1.0一起推出,在IIS3.0发扬光大,成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了VisualInterDev开发工具,在1994年到2000年之间,ASP技术已经成为微软推展WindowsNT4.0平台的关键技术之一,数以万计的ASP网站也是这个时候开始如雨后春笋般的出现在网络上。
它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一。
不过ASP的缺点也逐渐的浮现出来:
意大利面型的程序开发方法,让维护的难度提高很多,尤其是大型的ASP应用程序。
直译式的VBScript或JScript语言,让效能有些许的受限。
延展性因为其基础架构扩充性不足而受限,虽然有COM元件可用,但开发一些特殊功能(像文件上传)时,没有来自内置的支持,需要寻求第三方软件商开发的元件。
1997年时,微软开始针对ASP的缺点(尤其是意大利面型的程序开发方法)准备开始一个新项目来开发,当时ASP.NET的主要领导人ScottGuthrie刚从杜克大学毕业,他和IIS团队的MarkAnders经理一起合作两个月,开发出了下一代ASP技术的原型,这个原型在1997年的圣诞节时被发展出来,并给予一个名称:
XSP,这个原型产品使用的是Java语言。
不过它马上就被纳入当时还在开发中的CLR平台,ScottGuthrie事后也认为将这个技术移植到当时的CLR平台,确实有很大的风险(hugerisk),但当时的XSP团队却是以CLR开发应用的第一个团队。
为了将XSP移植到CLR中,XSP团队将XSP的内核程序全部以C#语言重新撰写(在内部的项目代号是"ProjectCool",但是当时对公开场合是保密的),并且改名为ASP+,作为ASP技术的后继者,并且也会提供一个简单的移转方法给ASP开发人员。
ASP+首次的Beta版本以及应用在PDC2000中亮相,由BillGates主讲Keynote(即关键技术的概览),由富士通公司展示使用COBOL语言撰写ASP+应用程序,并且宣布它可以使用VisualBasic.NET、C#、Perl与Python语言(后两者由ActiveState公司开发的互通工具支持)来开发。
在2000年第二季时,微软正式推动.NET策略,ASP+也顺理成章的改名ASP.NET,经过四年的开发,第一个版本的ASP.NET在2002年1月5日亮相(和.NETFramework1.0),ScottGuthrie也成为ASP.NET的产品经理(到现在已经开发了数个微软产品,像ASP.NETAJAX和MicrosoftSilverlight)。
目前最新版本的ASP.NET4.0及.NETFramework4.0已经在VS2010平台内应用。
A开发模式的优点
世界级的工具支持
A架构师可以用Microsoft公司最新的产品VisualS开发环境进行开发,这些仅是A强大化软件支持的一小部分。
强大性和适应性
因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。
通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。
ASP.net同时也是language-independent(语言独立化)的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript,C++、F++。
将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net。
简单性和易学性
ASP.net使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。
高效可管理性
ASP.net使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单。
因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。
这种被称为"ZeroLocalAdministration"的哲学观念使A的基于应用的开发更加具体和快捷。
一个ASP.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动,一切就是这么简单。
多处理器环境的可靠性ASP.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。
即使你现在的ASP.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP却做不到这一点。
自定义性和可扩展性ASP.net设计时考虑了让网站开发人员可以在自己的代码中自己定义"plug-in"的模块。
这与原来的包含关系不同,ASP.net可以加入自己定义的任何组件。
网站程序的开发从来没有这么简单过。
安全性基于Windows认证技术和每应用程序配置,你可以确保你的原程序是绝对安全的。
ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。
ASP.NET是一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行。
将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。
另外,任何ASP.NET应用程序都可以使用整个.NETFramework。
开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
ASP.NET可以无缝地与HTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。
这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。
2.2.2Ajax技术
Ajax指异步JavaScript及XML(AsynchronousJavaScriptAndXML)。
Web应用的交互如Flickr,Backpack和Google在这方面已经有质的飞跃。
这个术语源自描述从基于Web的应用到基于数据的应用的转换。
在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。
Ajax的核心【17【19】是JavaScript对象XmlHttpRequest。
该对象在InternetExplorer5中首次引入,它是一种支持异步请求的技术。
简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
在基于Ajax的应用中,并不是所有技术全部用到,但是XmlHttpRequest对象却是实现Ajax技术的最核心技术。
XmlHttpRequest对象负责将用户信息以异步通信的方式发送给服务器端,并接收服务器端返回的响应信息和数据。
Javascript本身并不能向服务器发送请求,可以有两种方法:
一种是通过XmlHttpRequest对象发送请求,另一种是使用widows.open()方法重新打开一个页面向服务器提交请求。
不同的是,前者是异步交互方式,后者是同步交互方式。
与传统的web模型相比,Ajax的运行是建立在异步交互的基础上的,异步交互的基本思想是尽量减少等待的时间。
基于Ajax的web应用开发模型(如图1所示),只传输和更新需要的数据,而不用刷新整个页面,也就是通过网络传输的不是用户真正需要的数据,这样的工作模型不仅加快了用户请求的响应速度,还避免了刷新页面带来的屏幕闪烁。
Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
通过Ajax,您的JavaScript可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。
通过这个对象,您的JavaScript可在不重载页面的情况与Web服务器交换数据。
Ajax在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。
Ajax可使因特网应用程序更小、更快,更友好。
Ajax是一种独立于Web服务器软件的浏览器技术。
Ajax基于下列Web标准:
JavaScriptXMLHTMLCSS在Ajax中使用的Web标准已被良好定义,并被所有的主流浏览器支持。
Ajax应用程序独立于浏览器和平台。
Web应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。
不过,因特网应用程序并不像传统的桌面应用程序那样完善且友。
通过Ajax,因特网应用程序可以变得更完善,更友好。
该技术在1998年前后得到了应用。
允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件由OutlookWebAccess小组写成。
该组件原属于微软ExchangeServer,并且迅速地成为了InternetExplorer4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ajax 网络 聊天室 本科 学位 论文