[参考]基于ajax的网络聊天室论文

上传人:无*** 文档编号:81101127 上传时间:2022-04-26 格式:DOC 页数:51 大小:688KB
收藏 版权申诉 举报 下载
[参考]基于ajax的网络聊天室论文_第1页
第1页 / 共51页
[参考]基于ajax的网络聊天室论文_第2页
第2页 / 共51页
[参考]基于ajax的网络聊天室论文_第3页
第3页 / 共51页
资源描述:

《[参考]基于ajax的网络聊天室论文》由会员分享,可在线阅读,更多相关《[参考]基于ajax的网络聊天室论文(51页珍藏版)》请在装配图网上搜索。

1、华北电力大学科技学院本科毕业设计(论文)I基于Ajax的网络聊天室的设计与实现摘 要如何更好地与他人沟通是人们普遍关心的问题。人们通过网站可以展示产品,了解与用户和合作伙伴的最新发展,交流和沟通,建立联系和开展电子商务。在线聊天系统作为一个网站的重要组成部分,为人与人之间的交流和交往提供了一个平台。传统的互联网聊天室,以显示在线用户和用户信息的实时传送,需要定期刷新页面。刷新页面,不仅要占用一定的系统资源和网络带宽,也会出现“白屏”现象,这对良好的用户体验是非常不利的。 Ajax是一个新的web应用,使用Ajax技术的发展不仅解决了页面刷新带来的白屏问题,也减少了对服务器和网络传输的负载。本系

2、统采用了A Ajax技术,数据库服务器端采用了SQL Server 2008作为数据库的开发,用C#语言编写的无刷新的网络聊天室。关键词:Ajax;网络聊天室;无刷新;异步交互DESIGN AND IMPLEMENTATION OF AJAX-BASED CHAT ROOMAbstractHow to communicate better with others is the general interest. Through the website can show the products, the latest developments, exchange and communicati

3、on with users and partners to establish contacts and e-commerce. Online chat system constitute an important part of the site, to provide a platform for exchanges and contacts between people.Traditional Internet chat rooms in order to display online users and user messages sent in real time, the need

4、 to regularly refresh the page. Page refresh not only to take up some system resources and network bandwidth, but there is also a black and white phenomenon is very detrimental to a good user experience. Ajax is a new web application, the chat room system using Ajax technology development not only s

5、olved the page refreshes bring black and white issues, but also reduce the load on the server and network transmission.The system uses the A Ajax technology, database server-side SQL Server 2008 as database development, written in C # refresh network chat rooms.Key Words: Ajax;Internet chat rooms;No

6、fresh;Asynchronous interactionII目录摘 要IAbstractII1 绪论11.1 系统现状11.2 国内外主要研究成果11.3 课题的主要内容及章节安排32系统开发环境和关键技术32.1 系统的开发环境42.2 关键技术42.2.1 A技术42.2.2 Ajax技术62.2.2 A Ajax技术112.2.3 数据库技术112.2.4 C#语言123系统分析与设计123.1 系统分析133.1.1 聊天室功能需求分析133.1.2 聊天室功能性能分析133.2 系统运行环境133.3 系统设计133.3.1 系统结构133.3.2 实体及数据库实现153.3.3

7、 后台功能模块153.3.4 流程图153.3.5 客户端与服务器端的相关设计164 系统实现184.1 聊天界面184.2 登录界面184.3 前台界面195 系统测试205.1 测试意义205.2 测试目标205.3测试方法205.4 测试用例20结 论22致 谢24231 绪论1.1 系统现状 在人们的生活中,信息技术的飞速发展正在发生深刻变化。人与人之间的对话是不再局限于面对面,网上聊天室提供了信息交流的另一个地方。传统的聊天室,以显示在线用户和用户信息的实时传送,需要定期刷新页面。刷新页面,不仅要占用一定的系统资源和网络带宽,也会出现“白屏”的现象,这对良好的用户体验是非常不利的。而

8、使用Ajax技术开发的聊天室,不仅可以解决页面刷新带来白屏的问题,也减少了对服务器和网络传输的负载。随着互联网应用的普及,web应用以其良好的扩展性、易于部署、维护方便等优点逐渐成为软件开发的主流。早期的Web应用采用的是同步交互过程【1】,即用户首先向Web服务器提交一个请求或行为呼叫,服务器接收到客户请求后执行相应处理操作,最后向用户返回处理结果。服务器在处理请求时【2】【3】,用户处于等待状态,有时如果超过了服务器响应时间,甚至返回“页面不可用”等提示。另外,当我们只想改变页面的部分数据时,用户的请求会导致服务器重新返回整个页面内容,包括那些没有改变的数据,这不但增加了网络传输的数据量,

9、还影响了客户端的响应时间,为什么我们不能“按需”获取数据呢?Ajax技术可以很好的解决上述web应用中存在的问题。Ajax技术是Web2.0的核心之一,本质上是一种RIA(RichIllternet Application)技术。RIA是指具有高度互动性和丰富用户体验的网络应用程序,它既具有消息确认、无刷新页面之下提供快捷的界面响应、拖放式等桌面应用程序的特点,同时又具有部署简单、跨平台等Web应用程序的特点。Ajax技术提供了客户端与服务器异步通信的能力【6】,从而使用户从请求一响应一再请求【3】的循环中解脱出来,同时降低了网络传输的数据量,提高了客户端的响应速度,改善了用户使用体验,使得w

10、eb应用可以接近甚至达到类似“桌面应用”的效果。而Ajax有上述优势,例如Google Suggest,Gmail,Google Map等等交互程序中都使用了异步通讯技术。不知不觉中,Ajax应用程序占据了整个网络的每一个角落。纵观所有的应用程序,更好的用户体验是其的共同目标,在浏览器中实现桌面用户界面体验是Web开发的一种趋势。Ajax技术从谷歌到IBM,甲骨文,雅虎,BEA系统公司,红帽,Novell公司获得业界众多的IT巨头的支持,其快速发展是值得期待的。技术创新和标准化是Ajax技术发展的必由之路,而W3C已成立了工作小组,专门从事Ajax的规范发展工作。1.2 国内外主要研究成果Aj

11、ax技术的精髓是用异步交互替代了传统的同步交互,所以当用户操作时间大于服务器响应时间的时候,使用Ajax的效果非常明显。而当程序性能的瓶颈在于服务器响应时间的时候,Ajax无法解决程序运行缓慢的问题。因此,Ajax是更适合在网络上的互动频繁轻量级的应用程序。在Ajax开发的应用程序中,Google公司成功将Ajax技术应用到他们的商业产品。Google地图和Google Suggest都应用了这项技术。当用户使用谷歌地图查看地图(包括地图的缩放和平移地图),并没有提交任何请求到服务器,你就可以浏览到地图的各个部分。在这里,它是Ajax技术的应用,使得地图是不刷新的方式,但每个显示原始数据的基础

12、上以增量方式显示。在这种方式下,用户觉得就像是在自己的计算机上查看本地的地图。微软也在积极开发Ajax应用程序:它将Ajax技术应用到的MSN Space上面。当用户使用MSN Space提交回复评论时,浏览器会暂时停顿,然后刷新显示用户提交的评论,这是应用了Ajax的原理。目前,Ajax应用最普遍的领域是GIS-Map方面。GIS的区域搜索强调快速响应,Ajax 的特点正好符合这种要求。在应用Ajax技术开发过程当中,处于核心位置的Ajax引擎实际上是一些复杂的JavaScript程序【7】。 随着网络应用和界面表现的复杂化,使用面向过程的JavaScript 语言描述表现逻辑将会变得很困难

13、。同时, JavaScript的兼容性和调试都会成为使用Ajax技术的一个障碍。为了解决这些问题,开发人员已经开发出了一些基于Ajax技术的框架,方便了开发人员使用,有利于Ajax 技术的进一步推广。当然,任何技术都是有局限性的,Ajax也不例外。Ajax更新页面无需刷新重载【9】【10】,这也使传统的一些用户交互行为变得不可用,如后退、前进和刷新等。另外,移动设备(如手机、PDA等)现在还不能很好的支持Ajax,Ajax 对流媒体的支持也没有Java Applet和Flash这样成熟的技术好。 因此,一些辅助的平台和插件的开发也将是Ajax技术应用当中重要的一部分。Ajax把大量的运算从服务

14、器转移到了客户端浏览器,这意味着浏览器将承受更大的负担,而不再是简单的文档显示功能【8】。聊天室作为一个能够吸引人气的栏目,在现代网络应用中随处可见。它的作用是给不同的用户提供一个交流信息的场所。用户在聊天室中可以发布信息,就如同所有用户都在一个个真正室内聊天一样。 传统的聊天室程序一般设置在客户端的网页自动刷新。刷新在这样的数据会带来一些缺点,例如:每次刷新服务器应该重新获取数据【14】,大大提高了服务器上的负载,此刷新过程正在进行,这将是非常严重的影响服务器的性能;每次刷新过程中会产生大量无用数据,不断刷新页面,用户在客户端方面,将导致屏幕闪烁。解决屏幕闪动最重要的一条原则就是,将改动的地

15、方显示到客户端,而那些不需要改动的地方则尽量不要让用户感觉到变化。一个更好的解决办法是使用Ajax技术的无刷新聊天室应用【16】。现在的聊天室通过四个主要功能模块实现了聊天室中用户登录、注销、环境设置、发送消息、读取消息和查看在线用户列表等。聊天室系统为用户提供了聊天场所,操作员可对后台网站的风格、广告链接等进行设置;用户可以根据个人的习惯选择字体、文字颜色和表情等;前台聊天室具有私聊的功能,私聊的内容仅供私聊双方查看;聊天者可自己手动清除聊天内容。操作员可通过客户端处理模块获取界面元素从而得到聊天内容或与服务器交互更新客户端页面响应用户事件。服务器端响应模块可提供聊天室界面元素信息获得提交数

16、据或数据合法性的验证。1) 基于CGI2) 基于JavaScript3) 基于ACTIVEX 4) 基于ASP的实现方案等在此列举了这四种方案的独到之处,场合选用,及各自所存在的缺点。PHP(Personal Home Page)是英文“超级文本预处理语言”(PHP:Hyper text Preprocessor)的缩写,是Rasmus Lerdorf推出的一种跨平台无缝运行服务器端的HTML嵌入式脚本语言,它混合了C,JAVA,Perl语言,主要用于Web服务器端的计算以及文字、文本处理。其最强大和最重要的特征是数据库集成层,可完成一个含有数据库的网功能的网页。MySQL是一个小型关系型数据

17、库管理系统,其拥有体积小、速度快、总体拥有成本低,开放源码,支持多种操作系统,支持多线程,充分利用CPU,优化SQL提高查询速度提供TCP/IP、ODBC和JDBC等多种数据库连接途径的优点。就是把每个连上同一网页的用户传送的发言数据储存起来,然后将所有的发言数据传给每一用户。也就是说,用数据库汇集每个人的发言,并将数据库中的数据传给每一个人就实现了聊天室的功能。为了优化聊天室的后台数据库聊天室系统需要五个数据表:1) 聊天信息表 (chatInfo)2) 用户信息表 (UserInfo)3) 网站风格信息表 (Stylfo)4) 广告信息表 (AdvInfo)5) 广告链接表 (AdvLin

18、k)1.3 课题的主要内容及章节安排现在,多渠道的信息源、网络化的数据分布、快捷医用的交互操作、智能化的分析决策等特点越来越成为衡量优良聊天软件的关键,因此,该网络聊天室是基于C#语言运行于VS平台上,利用的技术主要是A,使用配置文件作为数据管理。为实现和方便客户端间通信,在客户端进行了人性化的界面设计,用户可以注册号码,登陆界面,具有私聊消息功能。第1章对本次课题的背景及意义、课题现状、课题内容与目标进行了深入的阐述。第 2 章介绍了系统的开发环境和关键技术,例如A技术,数据库开发,C#等等。第 3 章是系统分析与设计。将对系统进行需求分析,对组成系统的功能模块进行划分,对每个模块将要实现的

19、功能进行阐述和说明。对系统的结构进行设计,设计共享数据结构。第4章是系统实现,分别介绍了服务器端和客户端每个功能的执行过程,画出主要模块的流程图。第 5 章介绍系统测试。最后,对本设计进行归纳总结,全面阐述本次设计中的体会。2 系统开发环境和关键技术2.1 系统的开发环境VS2010开发工具(如图1.1)以及Microsoft SQL Server 2008(如图1.2)图1.1 VS2010开发工具图1.2 SQL Server 20082.2 关键技术2.2.1 A技术ASP.NET的前身ASP技术,是在IIS 2.0上首次推出,当时与 ADO 1.0 一起推出,在IIS 3.0发扬光大,

20、成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了Visual InterDev开发工具,在1994年到2000年之间,ASP技术已经成为微软推展Windows NT 4.0平台的关键技术之一,数以万计的ASP网站也是这个时候开始如雨后春笋般的出现在网络上。它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一。不过ASP的缺点也逐渐的浮现出来: 意大利面型的程序开发方法,让维护的难度提高很多,尤其是大型的ASP应用程序。 直译式的VBScript或JScript语言,让效能有些许的受限。 延展性因为其基础架构扩充性不足而受限,虽然有COM元件可用,但开发一些特殊功能(像文件上传

21、)时,没有来自内置的支持,需要寻求第三方软件商开发的元件。 1997年时,微软开始针对ASP的缺点(尤其是意大利面型的程序开发方法)准备开始一个新项目来开发,当时ASP.NET的主要领导人Scott Guthrie刚从杜克大学毕业,他和IIS团队的Mark Anders经理一起合作两个月,开发出了下一代ASP技术的原型,这个原型在1997年的圣诞节时被发展出来,并给予一个名称:XSP,这个原型产品使用的是Java语言。不过它马上就被纳入当时还在开发中的CLR平台,Scott Guthrie事后也认为将这个技术移植到当时的CLR平台,确实有很大的风险(huge risk),但当时的XSP团队却是

22、以CLR开发应用的第一个团队。 为了将XSP移植到CLR中,XSP团队将XSP的内核程序全部以C#语言重新撰写(在内部的项目代号是 Project Cool,但是当时对公开场合是保密的),并且改名为ASP+,作为ASP技术的后继者,并且也会提供一个简单的移转方法给ASP开发人员。ASP+首次的Beta版本以及应用在PDC 2000中亮相,由Bill Gates主讲Keynote(即关键技术的概览),由富士通公司展示使用COBOL语言撰写ASP+应用程序,并且宣布它可以使用Visual Basic.NET、C#、Perl与Python语言(后两者由ActiveState公司开发的互通工具支持)来

23、开发。 在2000年第二季时,微软正式推动.NET策略,ASP+也顺理成章的改名ASP.NET,经过四年的开发,第一个版本的ASP.NET在2002年1月5日亮相(和.NET Framework 1.0),Scott Guthrie也成为ASP.NET的产品经理(到现在已经开发了数个微软产品,像ASP.NET AJAX和Microsoft Silverlight)。目前最新版本的 ASP.NET 4.0 及 .NET Framework 4.0 已经在VS2010平台内应用。A开发模式的优点世界级的工具支持 A架构师可以用Microsoft公司最新的产品Visual S开发环境进行开发,这些仅

24、是A强大化软件支持的一小部分。强大性和适应性因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。ASP.net同时也是language-independent(语言独立化)的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C+和Java的结合体),VB,Jscript , C+、F+。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向A

25、SP.net。简单性和易学性ASP.net使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。高效可管理性ASP.net使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为Zero Local Administration的哲学观念使A的基于应用的开发更加具体和快捷。一个ASP.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动,一切就是这么简单。多处理器环境的可靠性 ASP.net已经被刻意设计成为一种

26、可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的ASP.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP却做不到这一点。自定义性和可扩展性 ASP.net设计时考虑了让网站开发人员可以在自己的代码中自己定义plug-in的模块。这与原来的包含关系不同,ASP.net可以加入自己定义的任何组件。网站程序的开发从来没有这么简单过。安全性基于Windows认证技术和每应用程序配置,你可以确保你的原程序是绝对安全的。 ASP.NET 的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程

27、模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加 ASP.NET 功能,随时增强 ASP 应用程序的功能。 ASP.NET 是一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET.)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括

28、托管的公共语言运行库环境、类型安全、继承等等。 ASP.NET 可以无缝地与 HTML 编辑器和其他编程工具(包括 Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。2.2.2 Ajax技术Ajax 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML)。 Web应用的交互如Flickr,Backpack和Google在这方面已经有质的飞跃。这个术语源自描述从基于Web

29、的应用到基于数据的应用的转换。在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。 Ajax的核心【17【19】是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。在基于Ajax的应用中,并不是所有技术全部用到,但是XmlHttpRequest对象却是实现Ajax技术的最核心技术。XmlHttp

30、Request对象负责将用户信息以异步通信的方式发送给服务器端,并接收服务器端返回的响应信息和数据。Javascript本身并不能向服务器发送请求,可以有两种方法:一种是通过XmlHttpRequest对象发送请求,另一种是使用widows.open()方法重新打开一个页面向服务器提交请求。不同的是,前者是异步交互方式,后者是同步交互方式。与传统的web模型相比,Ajax的运行是建立在异步交互的基础上的,异步交互的基本思想是尽量减少等待的时间。基于Ajax的web应用开发模型(如图1所示),只传输和更新需要的数据,而不用刷新整个页面,也就是通过网络传输的不是用户真正需要的数据,这样的工作模型不

31、仅加快了用户请求的响应速度,还避免了刷新页面带来的屏幕闪烁。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。 通过 Ajax,您的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。 Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。 Ajax 可使因特网应用程序更小、更快,更友好。 Ajax 是一种独立于 Web

32、 服务器软件的浏览器技术。Ajax 基于下列 Web 标准: JavaScript XML HTML CSS 在 Ajax 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。Ajax 应用程序独立于浏览器和平台。 Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。 不过,因特网应用程序并不像传统的桌面应用程序那样完善且友。通过 Ajax,因特网应用程序可以变得更完善,更友好。该技术在1998年前后得到了应用。允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件由Outlook Web Access小组写成。该组件原属于微软Ex

33、change Server,并且迅速地成为了Internet Explorer 4.0的一部分。部分观察家认为,Outlook Web Access是第一个应用了Ajax技术的成功的商业应用程序,并成为包括Oddpost的网络邮件产品在内的许多产品的领头羊。但是,2005年初,许多事件使得Ajax被大众所接受。Google在它著名的交互应用程序中使用了异步通讯,如Google讨论组、Google地图、Google搜索建议、Gmail等。Ajax这个词由Ajax: A New Approach to Web Applications一文所创,该文的迅速流传提高了人们使用该项技术的意识。另外,对M

34、ozilla/Gecko的支持使得该技术走向成熟,变得更为易用。 Ajax前景非常乐观,可以提高系统性能,优化用户界面。Ajax现有直接框架AjaxPro,可以引入AjaxPro.2.dll文件,可以直接在前台页面JS调用后台页面的方法。但此框架与FORM验证有冲突。另外微软也引入了Ajax组件,需要添加AjaxControlToolkit.dll文件,可以在控件列表中出现相关控件。随着AJAX迅速地引人注目起来,我想开发人员对这种技术的期待也迅速地增加。就像任何新技术,AJAX的兴旺也需要一整个开发工具/编程语言及相关技术系统来支撑。 主要包含的技术:基 web标准(standards-ba

35、sed presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)进行动态显示及交互; 使用 XML 和 XSLT 进行数据交换及相关操作; 使用 XMLHttpRequest 进行异步数据查询、检索; 使用 JavaScript 将所有的东西绑定在一起。 类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。 AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包

36、括: Google Chrome、Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。 JavaScript如名字所示,AJAX的概念中最重要而最易被忽视的是它也是一种JavaScript编程语言。JavaScript是一种粘合剂使AJAX应用的各部分集成在一起。在大部分时间,JavaScript通常被服务端开发人员认为是一种企业级应用不需要使用的东西应该尽力避免。这种观点来自以前编写JavaScript代码的经历:繁杂而又易出错的语言。类似的,它也被认为将应用逻辑任意地散布在服

37、务端和客户端中,这使得问题很难被发现而且代码很难重用。在AJAX中JavaScript主要被用来传递用户界面上的数据到服务端并返回结果。XMLHttpRequest对象用来响应通过HTTP传递的数据,一旦数据返回到客户端就可以立刻使用DOM将数据放到网面上。 XMLHttpRequestXMLHttpRequest对象在大部分浏览器上已经实现而且拥有一个简单的接口允许数据从客户端传递到服务端,但并不会打断用户当前的操作。使用XMLHttpRequest传送的数据可以是任何格式,虽然从名字上建议是XML格式的数据。 开发人员应该已经熟悉了许多其他XML相关的技术。XPath可以访问XML文档中的

38、数据,但理解XML DOM是必须的。类似的,XSLT是最简单而快速的从XML数据生成HTML或XML的方式。许多开发人员已经熟悉Xpath和XSLT,因此AJAX选择XML作为数据交换格式是有意义的。XSLT可以被用在客户端和服务端,它能够减少大量的用JavaScript编写的应用逻辑。 CSS简介为了正确的浏览AJAX应用,CSS是一种AJAX开发人员所需要的重要武器。CSS提供了从内容中分离应用样式和设计的机制。虽然CSS在AJAX应用中扮演至关重要的角色,但它也是构建跨浏览器应用的一大阻碍,因为不同的浏览器厂商支持各种不同的CSS级别。 服务器端不像在客户端,在服务端AJAX应用还是使用

39、建立在如Java,.Net和PHP语言基础上机制;并没有改变这个领域中的主要方式。 既然如此,我们对Ruby on Rails框架的兴趣也就迅速增加了。在一年多以前,Ruby on Rails已经吸引了大量开发人员基于其强大功能来构建Web和AJAX应用。虽然目前还有很多快速应用开发工具存在,Ruby on Rails看起来已经储备了简化构建AJAX应用的能力。 调试问题在实际构建AJAX应用中,你需要的不只是文本编辑器。既然JavaScript是非编译的,它可以容易地编写和运行在浏览器中。然而,许多工具提供了有用的扩展如语法高亮和智能完成。 不同的IDE提供了对JavaScript支持的不同

40、等级。来自JetBrains的IntelliJ IDEA是一个用来JavaScript开发的更好的IDE,虽然许多开发人员也喜欢Microsofts Visual Studio产品(允诺会在最新的版本中改善对AJAX的支持)。Eclipse包含了两个免费的JavaScript编辑器插件和一个商业的来自ActiveStat的Komodo IDE。 另一个JavaScript和AJAX开发中的问题是调试困难。不同的浏览器提供不同的通常是隐藏的运行时错误信息,而JavaScript的缺陷如双重变量赋值(通常是由于缺少数据类型)使得调试更加困难。在AJAX的开发中,调试就更复杂了,因为其需要标识究竟是

41、客户端还是服务端产生的错误。在过去,JavaScript调试的方法是删除所有代码然后一行行的增加直到错误出现。现在,更多开发人员回到为IE准备的Microsoft Script Debugger和为Mozilla浏览器准备的Venkman。 浏览器兼容性JavaScript编程的最大问题来自不同的浏览器对各种技术和标准的支持。构建一个运行在不同浏览器(如IE和火狐)是一个困难的任务。因此几种AJAX JavaScript框架或者生成基于服务端逻辑或标记库的JavaScript,或者提供符合跨浏览器AJAX开发的客户端JavaScript库。 这些框架给开发人员更多的空间使得他们不需要担心跨浏览

42、器的问题。虽然这些框架提升了开发人员构建应用的能力,但由于厂商已经开发了更细节的用户界面的打包组件解决方案,因此在AJAX组件市场中需要考虑一些其他因素。例如提供通用用户界面的组件如组合框和数据栅格的几个厂商,都可以被用来在应用中创建良好的通过类似电子数据表方式来查看和编辑数据的体验。但这些组件不仅是封装了组件的用户界面而且包括与服务端数据的通讯方式,这些组件通常使用基于标记方式来实现如或JSF控件。Ajax优点传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然後返回一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的

43、大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。 与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因此在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。 使用Ajax的最大优点【4】【5】,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为

44、迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。 Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。Ajax缺点对应用Ajax最主要的批评就是,它可能破坏浏览器后退按钮的正常行为。在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。一个被完整读入的页面与一个已经被动

45、态修改过的页面之间的差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。不过开发者已想出了种种办法来解决这个问题,当中大多数都是在用户单击后退按钮访问历史记录时,通过建立或使用一个隐藏的IFRAME来重现页面上的变更。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。) 一个相关的观点认为,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。该问题的解决方案也已出现,大部分都使用URL片断标识符(通常被称为锚点,即UR

46、L中#后面的部分)来保持跟踪,允许用户回到指定的某个应用程序状态。(许多浏览器允许JavaScript动态更新锚点,这使得Ajax应用程序能够在更新显示内容的同时更新锚点。)这些解决方案也同时解决了许多关于不支持后退按钮的争论。 进行Ajax开发时,网络延迟即用户发出请求到服务器发出响应之间的间隔需要慎重考虑。不给予用户明确的回应 ,没有恰当的预读数据 ,或者对XMLHttpRequest的不恰当处理,都会使用户感到延迟,这是用户不欲看到的,也是他们无法理解的。通常的解决方案是,使用一个可视化的组件来告诉用户系统正在进行后台操作并且正在读取数据和内容。 一些手持设备(如手机、PDA等)现在还不

47、能很好的支持Ajax; 用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是让人头痛的事; Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等; 对串流媒体的支持没有FLASH、Java Applet好2.2.2 A Ajax技术Atlas是一个新的Web技术开发包,它集成了一套非常大的客户端脚本库使得与功能丰富的、基于服务器开发平台的 ASP.NET2.0结合在一起,”Atlas”能让你开发的Web应用能

48、够通过直接调用Web服务器来更新一个Web页面的数据不需要在页面往返传送(也就是不需要多次刷新页面)。使用”Atlas”,你能最大地利用ASP.NET和服务器端代码在浏览器中来做许多工作,使得有更加丰富的用户体验。 ASP.NET 在2007年初推出了其第一个正式版本,并将Atlas更名为ASP.NET AJAX,对应服务器端和客户端分别对应有ASP.NET服务器端编程模型和ASP.NET客户端编程模型,前者包含ASP.NET 2.0 Ajax Extensions和后者包含Microsoft AJAX Libray。 ASP.NET Ajax是一个完整的开发框架,其服务器端编程模型相对于客户

49、端编程模型较为简单,而且容易与现有的ASP.NET程序相结合,通常实现复杂的功能只需要在页面中拖几个控件,而不必了解深层次的工作原理,除此之外服务器端编程的ASP.NET AJAX Control Toolkit含有大量的独立Ajax控件和对ASP.NET原有服务器控件的Ajax功能扩展,实现起来也非常简单。但是鱼与熊掌不可兼得,服务器端编程相对于客户端编程在执行效率和可控性上有较大差距。2.2.3 数据库技术SQL Server是一个关系型数据库引擎,只要一套系统就既能支持小型数据库,也能支持企业级大型数据库。数据库系统的管理工作包括许多富于挑战性的任务,特别是运行性能的管理工作。它采用了多

50、线程技术,支持存储过程,采用基于成本的优化技术,在核心层实现数据完整性约束,并具有很强的安全保密性。它的工作主要是负责高速计算,数据管理,安全性及事务管理。SQL Server2008在SQL Server7.0的基础上新增了许多的功能,使得用户能更方便、更快捷的管理数据库和开发应用程序。SQL Server2008最常用的是企业管理器。通过企业管理器可以方便的可视化的建立起数据库系统,从而可以在对SQL不是很精通的情况下,一样建立起一个良好的数据库来。企业管理器是一个集成化的数据库操作环境,几乎所有的数据库操作都可以在这里里面完成。它是SQL Server 2008的主要管理工具,提供了一个

51、遵从微软管理控制台的用户界面,使用户可以进行如下的操作:定义运行SQL Server的服务器组。将个别服务器注册到组中。为每个已注册的服务器配置所有SQL Server选项。在每个已注册的服务器中创建并管理所有SQL Server数据库、对象、登录、用户和权限。在每个已注册的服务器上定义并执行所有SQL Server管理任务。通过调用SQL查询分析器,交互的设计并测试SQL语句、批处理和脚本。调用为SQL Server定义的各种向导。结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制4个方面,是一种

52、通过的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言。常用的功能包括数据定义、查询、数据更新和视图。要在良好的SQL Server方案中实现最优的性能,最关键的是要有1个很好的数据库设计方案。在实际工作中,许多SQL Server方案往往是由于数据库设计得不好导致性能很差。所以,要实现良好的数据库设计就必须考虑这些问题。2.2.4 C#语言C#是微软(Microsoft)为NET Framework量身订做的程序语言,微软公司在2000年6月发布的一种新的编程语言。C#拥有C/C+的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-orien

53、ted)的程序语言,和C+与Java一样为对象导向(object-oriented)程序语言。它将软件开发中的逻辑分成4大部分:商业外观层(BusinessFacade),商业规则层(BusinessRules),数据访问层(DataAccess),Model层。正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过INTERNET进行调用。 最重要的是,C#使得C+程序员可以高效的开发程序,而绝不损失C/C+原有的强大的功能。因为这种继

54、承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。3 系统分析与设计3.1 系统分析3.1.1 聊天室功能需求分析用户登录聊天室;用户可以设置自己的名字;用户可以发布信息;用户可以查看其他所有人发布的信息;能够公开聊天、私下聊天等等;用户可以选择表情在信息中发布;可以查看在线人员名单3.1.2 聊天室功能性能分析普通用户能够登录的聊天室进行文本的聊天,能够方便的实现公共交谈、选择颜色、添加表情、进行私聊等,新用户注册时能够保证用户昵称的唯一性。可以用Ajax实现无刷新操作。3.2 系统运行环境系统采用了Visual Studio.NET设计,故可以运行在所有支持.

55、NET虚拟机的系统中。开发工具:VS2010+SQL2008 开发语言:C#3.3 系统设计3.3.1 系统结构Ajax聊天室的三层结构如图3.1所示:数据库前台界面前台功能模块请求控制器后台功能模块图3.1 Ajax聊天室三层结构聊天室首页(Default.aspx)聊天室主界面(Chatroom.aspx)后台处理(Server.aspx)公共文件Style.cssAjaxFunction.Js获取用户列表执行管理操作获取聊天信息图3.2 聊天室具体实现模块其中数据库负责存储用户和留言数据。程序服务端程序包括请求控制器和后台功能模块两部分。请求控制器负责处理前台程序发过来的请求并调用后台功

56、能模块进行处理,然后返回处理结果。后台功能模块提供了尸体封装和逻辑处理。聊天室的前台部分包括前台界面和前台功能模块,前台界面提供了用户数据的输入输出接口。前台功能模块定义了实现聊天室各功能的脚本代码,其被用户事件驱动并与后台的请求控制器进行交互。3.3.2 实体及数据库实现按照需求,确定了用户及消息两个实体,其包含的属性及实体间的关系如图3.3所示:UserinfoPK id Username chatlastinfoChatinfoPK username User_from User_to Content ; color Send time图3.3 设计实体与数据库3.3.3 后台功能模块后

57、台功能模块提供实体的封装和相关的逻辑处理,按照需求该模块由数据操作类(DB),用户类(user),消息类组成(Message)。3.3.4 流程图只有充分地了解了聊天程序的工作流程,才能对整个系统的理解更加深刻,聊天程序的工作流程如图3.4所示。登录聊天室初始化聊天室数据存储离开聊天室交换数据图3.4 聊天室设计流程图3.3.5 客户端与服务器端的相关设计聊天系统以用户为应用对象,经过各方面需求分析,该系统主要由服务器端和客户端以及请求服务器三部分构成,各功能模块如图3.5所示。 服务器端WEB和XML服务器数据处理 JavaScript HTML+CSS 客户端用户界面AJAX引擎HttpR

58、equest XML图3.5 服务器与客户端的设计与分析4 系统实现4.1 聊天界面基本实现聊天功能、显示在线人数、改变字体颜色等功能(如图4.1)图4.1 聊天界面4.2 登录界面图4.2 登录页面4.3 前台界面图4.3 登录后的聊天室5 系统测试5.1 测试意义本章对我们的系统做具体的测试,验证系统的功能是否得以实现。5.2 测试目标1)测试是为了发现程序中的错误而执行的程序的过程;2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;3)成功的测试时发现了至今为止尚未发现的错误的测试。从上述规则可以看出,测试的正确定义是“为了发现程序中的错误而执行程序的过程”。正确认识测试是非

59、常重要的,测试目标决定了测试方案的设计。没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。5.3 测试方法软件的测试分为两种:黑盒测试和白盒测试。黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试地,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试。它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试

60、的。很明显,如果外部特性本身有问题或规格说明的规定有误,用墨盒测试方法是发现不了的。白盒测试:软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:1)对程序模块的所有独立的执行路径至少测试一遍。2)对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。3)在循环的边界和运行的界限内执行循环体。4)测试内部数据结构的有

61、效性,等等。5.4 测试用例黑盒测试:主要是同学帮助一起测试系统的功能,看看主要功能是否能得以实现。白盒测试:主要是在编写代码的过程中对各个类进行测试,检查各个类的功能是否实现,最后是对整个系统的测试,进一步检查各个类的功能。经过以上测试,系统基本完成所需功能。表格 5.3测试用例功能描述用户登录用例目的测试用户登录与聊天功能是否正常前提条件客户端程序和服务器端程序处于运行状态输入/动作期望的输出/相应实际情况示例1:输入正确的用户名、密码用户成功登陆,关闭登陆窗体,弹出客户端主界面与期望输出相同示例2:不输入用户名密码提示用户“用户名不能为空!”或“密码不能为空!” 与期望输出相同示例3:登

62、录成功后,发送信息发送信息成功与期望输出相同示例4:和同学私聊接收信息成功与期望输出相同结 论经过几个月的毕业设计与开发,网络网聊天室已基本完成,系统需求功能基本实现,测试运行基本与需求相符。该系统完成了用户登录、发送信息、公开聊天、私聊、查看在线人员的功能。操作简便,易于使用。在毕业设计的初期阶段,我主要学习了与本课题相关的理论知识,包括:Ajax三层架构的学习,数据库技术的应用以及C#语言的学习。 在查阅大量资料制订了系统需求后,在老师的指导下我着手制定了系统的需求分析规格说明书和系统概要说明书。接着便进入了系统详细设计和编码阶段,在这个阶段,由于自己动手经验不足和对开发工具的陌生,系统遇到了很多大大小小的问题,在一次次克服困难的过程中,我得到了极大的锻炼,基本上掌握了一些的编程技巧,同时也获得了许多宝贵的软件开发经验和技巧,这为我今后的学习工作打下了坚实的基础。而这对我来说是一次丰富的收获。 在这段时间里我学到了很多以前没有学到的知识,同时也将以前所学过的知识运用到实践项目中,在提高理论知识的基础上,也充分地锻炼了自己的动手能力。当然这个系统还存在许多有待完善之处:功能相对较少,有待于添加,比方说像文件传输,查找,语音等功能。在文字传送的同时增加表情发送的功能;界面设计的不够精致美观。由于自己经验不足且时间有限,所以界面设

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!