




已阅读5页,还剩51页未读, 继续免费阅读
(计算机软件与理论专业论文)ajax在webqq中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 中 文 摘 要 ajax(asynchronous javascript and xml)是 web 应用程序开发领域 的一种新的技术。它采用异步调用数据使页面局部刷新,它可只向服务 器传送和接收自己所需要的数据,从而减少了不必要的网络开销,也正 因为如此,它可以使 web 应用程序具有更高的即时响应性,更好的可交 互性和更方便的个性化服务,使用户像使用桌面应用程序一样使用 web 应用程序。 当今网络即时聊天软件相当盛行,国内外都出现了大批的网络即时 聊天软件,这些软件厂商之间竞争相当激烈,激烈的竞争带来了技术的 飞速发展同时也给用户带来了方便。但是这些即时通讯软件都需要下载 安装客户端,并进行相应的设置,这也给用户的使用带来不便,本论文 是基于 ajax 技术,在 microsoft 公司提供的 asp.net2.0ajax 框架下, 围绕 web 应用的交互模式进行研究。将即时通讯系统 webqq 集成在服务 器端省下了安装客户端的麻烦,从而达到“瘦客户”的目的,使用户的使 用更加简洁方便, 改善了用户体验。 本文详细介绍如何在asp.net2.0ajax 框架下开发 webqq,实现用户的上线下线、消息的即时发送与接收、群 的建立和对好友进行分组等功能。 关键词关键词:asp.net;ajax;webqq;异步通信 ii abstract ajax(asynchronous javascript and xml) is a new web application development technology. this technology uses asynchronous calls method to refresh local pages, so it can reduce network traffic through only sending and receiving their required data, and will enable web applications is more immediate response better can be interactive, more user-friendly and personalized service. allowing users to use as desktop applications like the use of web applications. currently, on-line chatting is popular, a large quantities of similar on-line communication software appeared in our country, software vendors scramble users by fierce competition, the fierce competition bring about rapid development of technology and also bring convenience to users. however, these on-line communication software need to download and install client software, and also make according setting, this gives inconvenience to users. this paper is based on ajax technology, in the microsoft corporation to provide the asp.net2.0 ajax framework, the interactive web applications on this mode of study. the on-line communication software webqq will be integrated in server-side and this will save the trouble of installing client side,so as to achieve the purpose of thin client,this makes the using of users more simple and convenient and iii improves users experience. this article details on how to developed webqq under the framework of asp.net2.0ajax ,introduce the realization process of user online and user offline、sending and receiving instant message、the establishment of group and grouping of friends. key words: asp.net;ajax;webqq;asynchronous interaction 52 承 诺 书 承 诺 书 本人郑重声明:所呈交的学位论文,是在导师指导下独立完成的, 学位论文的知识产权属于山西大学。如果今后以其他单位名义发表与在 读期间学位论文相关的内容,将承担法律责任。除文中已经注明引用的 文献资料外,本学位论文不包括任何其他个人或集体已经发表或撰写过 的成果。 作者签名: 20 年 月 日 承诺书 53 学位论文使用授权声明 学位论文使用授权声明 本人完全了解山西大学有关保留、使用学位论文的规定,即:学校 有权保留并向国家有关机关或机构送交论文的复印件和电子文档,允许 论文被查阅和借阅,可以采用影印、缩印或扫描等手段保存、汇编学位 论文。同意山西大学可以用不同方式在不同媒体上发表、传播论文的全 部或部分内容。 保密的学位论文在解密后遵守此协议。 作者签名: 导师签名: 20 年 月 日 第一章 绪论 1 第一章 绪论 第一章 绪论 1.1 研究背景及意义研究背景及意义 目前的互联网已经是开放的、可读写的、多媒体的 web2.0 交互平台 ,它可以 满足用户与系统进行交互的需求。良好的用户体验成为当前网络服务追求的新目标。 就在这样的环境背景下 ajax 应用而生,这种异步数据交互模式的出现为开辟了一种 全新的 web 设计方法 。 实际上 ajax 并不是一门新的语言或技术,它由几种已经存在很久的技术模式和 语言全新组合而成:包括 javascript、xhtml、css、dom、xml、xstl 和 xmlhttprequest。其中: xhtml 和 css 用于对数据进行标准化呈现;而 dom 则负 责实现数据的动态显示和交互; xml 和 xstl 则是对数据格式的交换; xmlhttprequest 用来读取数据。通过这些技术的集成,ajax 实现了浏览器与服务 器无刷新交互,数据的按需获取与页面的部分加载,改变原有的同步交互为异步交 互方式;极大地缓解了网络数据流量,减低服务器负担;同时它还给用户带来良好的远 程交互能力;大大地提升了用户体验,使用户像使用 c/s 架构的软件一样使用 b/s 架 构的软件 。ajax 是新兴网络开发技术的代表,正成为 web2.0 应用领域的研究热点, 并涌现出了许多 ajax 框架,这推动了 ajax 在 web 中的应用发展,web 开发掀开了 它崭新的一页 。 21 世纪以来即时通讯产业的蓬勃发展带来巨大的产业机会,各大即时通讯厂商 紧紧的抓住这个争夺互联网用户群的机会。雅虎、网易、腾讯、数动时代等中国巨 头公司都先后加入这场战斗。目前来看,即时通讯软件产品众多,而且各有特点和 优势,但对于用户而言,这种竞争和特色却并不都是优点。为了自己的产品利益, 各厂商必须稳住现有用户,并积极发展更多的用户,这就必然导致各厂商信息的独 享与产品的隔离;对于用户而言,他必须同时使用几个即时通讯软件才能和所有人进 行沟通,这给用户带来了极大的不便。同时,各即时通讯软件都需要下载安装客户 端,并进行相应的设置,这也给用户的使用带来不便,本论文旨在集中讨论如何将 即时通讯系统集成在服务器端,从而实现“瘦客户”的概念,并为即时通讯领域将 来的互联互通做好充分的准备。本系统可与以 a 开发的系统集成,它能为自己 ajax 在 webqq 中的应用 2 的用户提供即时通讯的功能,正是为了满足这一需求本系统应运而生,使用户能够 在这个系统上进行即时交流,省去了下载安装客户端的麻烦,极大的方便了用户 。 1.2 国内外研究动态国内外研究动态 web2.0 是相对 webl.0(2003 年以前的互联网模式)的新的一类互联网应用的统 称,是一次从核心内容到外部应用的革命目前,业界己经采纳并且大力推动 ajax 技 术的发展 。为了对如何提高 web 应用的可用性做出指导,w3c 在 20 世纪 90 年代建 立了 web accessibility initiative(wal),致力于为网站建造者提供实现可访问性 (与可用性同义)的方法和策略(/wai/gl/)web 典著作包括网站 重构 。首先微软在自己的.net 框架中给出了基于 ajax 的扩展和实现,继 2006 年 中起便陆续发布支持 ajax 开发的测试版工具。企业通过使用 ajax,可以强化网站的 功能,提高用户体验。ajax 还催生了一系列基于互联网的新服务,包括免费文字处 理程序 writely,电子数据表制作网站 numsum,以及人们用于编制日程和工作时间 表的网站 voo2do。而更惊人的是,google 和一批新创公司已经开始利用 ajax 开发 炫目的新一代的软件,你所熟悉的文本处理、电子表格、日程安排等等功能,都可 能以网页形式出现在浏览器中,并且可以免费使用。甚至 sap、oracle、sun 和 bea 这样的企业软件巨头;tibco、iconix 这样的重量级工具厂商也已经或者准备在其产 品中加入 ajax 支持。syscon 等技术媒体,己经开辟了专门的 ajax 频道网 。 国内对 ajax 的研究应用也早已开始,如著名的门户网站新浪,网易的邮件系统 已经采用了 ajax,百度的自动完成功能等等。它极大的改善了 web 应用的可用性和 用户的交互体验,也极大减少了用户操作的响应时间 。最终得到了用户和市场的共 同认可。所以说,ajax 就是用户和市场的选择。 1.3 本文主要的工作 本文主要探讨了目前非常热门的 ajax 技术,分析和研究了传统模式下 web 开发 时所存在的一些不足, 在理论研究的基础上, 研究基于 ajax 模式下 web 开发的思想。 包括 ajax 的由来, 并结合一个实际的项目 “webqq” 讨论了在系统中如何结合 asp.net 平台来实现 ajax 技术。在这个项目中,我们创新性地在系统中引入了当今很流行的 ajax 技术,较好地解决了传统 web 应用遗留下的很多问题,比如即时数据校验、可 第一章 绪论 3 输可选的下拉框,数据联动,页面长时间等待等问题,大大提升了用户的体验。 针对项目的具体需求,技术平台是 asp.net,所以我们采用了开源的可视化的 ajax 开发框架 microsoft asp.net ajax,实现了消息的即时发送与接收、无刷新动 态显示用户上线下线状态、聊天窗口的随意拖动等功能。论文中深入探讨了 asp.net ajax 的配置、使用以及具体实现流程。对其它欲采用 ajax 技术的 asp.net 项目具有 很好的借鉴意义。 1.4 论文结构 本文共分为四章: 第一章:绪论。阐述了论文研究背景和意义,介绍了 ajax 技术的发展现状,简 要介绍了本文主要研究内容及论文组织结构。 第二章:ajax 技术分析与探讨。 将 ajax 与其他 ria 技术进行了比较, 分析了 ajax 的特点,深入剖析了 ajax 的工作原理及其关键技术。 第三章: asp.net ajax 技术介绍。介绍了什么是 asp.net ajax 及其优点和常用 的几种控件。 第四章:ajax 的综合应用:webqq。实现了 webqq 即时聊天系统,检验了 ajax 的 运用效果,进一步阐述了应用 ajax 设计模式的方法及其优点。 ajax 在 webqq 中的应用 4 第二章 ajax 技术概述 2.1 ajax 简介 目前,桌面应用程序和 web 应用程序是主要的编程模式,即 c/s 和 b/s 架构。 前者的优势是绝大部分的运算是在客户机上进行,进而提高了执行效率,可是这需 要安装客户端软件,对软件维护和升级带来不便;后者的优势是软件维护和升级方 便,用户只需通过浏览器上网就能使用软件,而不需要安装客户端。但是 web 应用 程序会出现等待服务器响应、屏幕刷新、当请求的页面数据返回时才能生成新页面 等情况。ajax 技术的到来解决了数据的重复请求的问题,它不但可以缓解服务器的 负担,而且当网络繁忙时,还可以减小网络带宽的压力,缩短了用户等待时间。总 之,ajax 技术能让用户感受良好的用户体验。 2.1.1ria 概述 ria 是将桌面应用软件的用户界面功能与 web 应用程序的低成本部署以及多媒 体互动通信的长处集于一身,可以给用户提供更加直观、更加有效和交互性更强的 网络应用程序。 一项复杂的事务处理 web 应用程序要求多次提取网页来完成,在特定领域中, 如金融和财务领域,往往会导致交互速度过低而无法接受。ria 能为用户提供一个 有好的操作界面 11。ria 使用相对健壮的客户端描述引擎,这个引擎能够为用户提供 图形丰富的用户界面,此外它还能在客户端缓存数据,减少往返于客户端与服务器 之间的数据流量 12。 2.1.2ajax 的优势 ajax 可以跟 javascript 语言和 css、xml、xslt、dom 等其他标准的 web 开发技 术无缝集成,因此它可以根据需要动态展示内容不需要改变现有 web 内容,在使用 时,不需要安装任何插件,使用方法和通常的 b/s 模式应用程序完全一样,为广大 用户所接受 13。此外,ajax 还可以与其它 ria 技术联合使用共同构建更强大的 web 应 用程序。 第二章 ajax 技术分析与探讨 5 2.2 ajax 的技术原理 ajax 应用是在客户端和服务器之间增加了一个中间层,即存在于用户本地浏览 器中得 ajax 引擎。它不会把用户的请求直接发送到服务器端,而是先把用户的请求 转交给 ajax 引擎,然后再由 ajax 引擎异步的发送到服务器去请求数据,返回的服 务器响应数据也是先转交给ajax引擎处理然后才会显示在用户界面上。 实际上, ajax 引擎就是一些功能特殊的 javascript 程序,这些程序通过调用 javascript 的 xmlhttprequest 对象与服务器端进行异步数据交互,利用 dom 来解析处理 xml 数据 文档和然后再更新客户端 html 页面的内容。这样就可以让用户像使用桌面应用程序 一样,不必等待像传统 web 应用程序那样等待数据和页面刷新,进而改善用户体验 14 1516。 2.3 ajax 的关键技术 2.3.1xmlhttprequest 对象 xmlhttprequest 对象是 ajax 技术的灵魂, 通过它可以让开发人员开发与本地桌 面应用程序一样直观、丰富、动态的 web 应用程序,xmlhttprequest 对象可以使浏 览器和服务器之间进行异步数据交互。 javascript 通过 xmlhttprequest 对象向服务 器提交数据处理请求并获得相应,使得用户的使用更加方便。 2.3.2dom 技术介绍 文档对象模型 dom (document object model),是由 w3c 组织统一制定的可以独 立于平台和语言的文档结构,它可以让程序及脚本动态访问或更新其文档内容、结 构和样式。 ajax 正是利用 dom 的这个特性通过 javascript 语言来动态的访问和修改 文档的内容结构以及显示方式,从而达到 web 页面数据的部分加载和局部更新 1718。 dom 以面向对象的方式描述对象模型。节点是 dom 中最基本的对象,document、 element、attribute、text 等是从 node 派生出的几个比较重要的节点类型。dom 定 义了一系列标准的 api 来操作这些对象来达到操作文档的目的。 dom 在内存中使用树 形结构来表示文档,文档元素是树的最高阶层,该元素有一个或多个孩子节点表示 树的分枝。每个节点可以有 text,也可以有 attribute。在 ajax 应用中,用户界面 的更新主要是通过操作 dom 来完成。 ajax 在 webqq 中的应用 6 2.3.3javascript 语言 javascript 属于解释型的程序设计语言,它可以嵌入到客户端页面中来达到丰 富交互、动态的页面的目的。 javascript 是一种基于对象的语言,但是它却具有面向对象程序设计能力。 javascript 语言是 ajax 技术的技术灵魂, 能使开发人员能够运用编程语言来控制浏 览器的行为,为其它组件提供一个 javascript 的编程接口,通过 javascript 来解 析服务器传回的数据,操作 domapi 呈现数据并通过 css 样式表来设置或修改 dom 外 观,动态改变用户界面 19。 2.4 本章小结 本章首先简要介绍了 ria、ajax 的概念以及 ajax 的关键技术。其次深入的剖析 了 ajax 的技术原理,将 ajax 异步交互模式与传统的同步交互模式进行了对比。最 后,对 ajax 的关键技术进行了较深入的分析与探讨。 第三章 asp .net ajax 技术介绍 7 第三章 asp.net ajax 技术介绍 3.1 asp.net ajax 简介 迄今为止对 ajax 技术封装最完备且功能最强大的当数微软公司的 asp.net ajax。它完全支持客户端面向对象编程,还支持对 javascript 的面向对象方法的扩 展,它可以巴客户端开发提升到前所未有的地步。 asp.net ajax 包括 3 个部分: microsoft ajax library、asp.net 2.0 ajax extensions 和 asp.net ajax control toolkit 20。 3.2 asp.net ajax 架构 asp.net ajax 包含客户端脚本库和服务端组件,这两者结合在一起提供了一个 强大功能的开发架构。 1、asp.net 服务器端组件 asp.net 服务器端组件由 asp.net 控件和组件构成, 用于管理 ui 和应用程序流, 管理序列,验证和控件扩展性等。此外,asp.net web 服务也能用于访问 asp.net 应 用服务,包括窗体验证和用户验证。 2、asp.net 服务器控件 以下是最常用最经典的几个 asp.net ajax 控件。 (1)scriptmanager 控件 (2)updatepanel 控件 (3)updateprogress 控件 (4)timer 控件 3、asp.net ajax 客户端架构 javascript 文件构成了 asp.net ajax 的客户端脚本库。这些 javascript 文件 支持面向对象开发。以下是 asp.net ajax 中客户端的各个层次。 (l)浏览器的兼容层。 (2)asp.net ajax 核心服务,在 asp.net ajaxjavascript 中引入类、接口、继 承、命名空间、事件处理、数据类型等特性让 javascript 变成了一个完全面向对象 ajax 在 webqq 中的应用 8 的语言,开发者可以充分利用这些面向对象的特性来编写出高质量、可重用的程序。 (3)asp.net ajax 基础类库,包括 stringbuilder、timer、debugger、trace 等。 这些对基础功能的封装在本层以上的各层中都被广泛地使用。 (4)网络工作层。该层用于处理基于 web 服务和应用之间的通信,管理异步式远 程方法的调用 21222324 。 3.3 asp.net ajax 控件在 web 开发中的应用 1. scriptmanager 控件 scriptmanager 控件用来处理页面局部更新,在所有需要支持 asp.net ajax 的 asp.net 页面上有且只能有一个 scriptmanager 控件。 下面是使用 scriptmanager 控 件的最常用的代码: scriptmanager 完全支持局部页面刷新和 webservices 回调。scriptmanager 控 件是每个需要支持 asp.netajax 功能页面所必须控件。 每个.aspx 页面上一定有且只 有一个 scriptmangeger 控件。值得注意的是,页面上任何用 scriptmanger 控件注 册的脚本和所有事件处理脚本都必须在页面元素内。否则脚本将不会被注册 或者被执行。 2. updatepanel 控件 利用 updatepanel 控件可以很轻松的实现局部数据的更新,而且不用编写任何 客户端脚本,在一个页面上可以拖放多个 updatepanel 控件,updatepanel 控件之间 第三章 asp .net ajax 技术介绍 9 允许嵌套。updatepanel 控件中有很多的属性,这里不进行一一介绍,最基本的 updatepanel 控件使用方法如下: 3. updateprogress 控件 updateprogress 控件可与 updatepanel 配合, 用来显示目前异步 postback 的处 理状况,或是将进行中的异步 postback 取消。一个 updateprogress 控件可以和一 个甚至多个 updatapanel 控件在同一个页面中相关联。updateprogess 控件提供了 associatedupdatepanelid 属性,可以指定 updateprogress 控件显示哪一个 updatepanel 控件。updateprogess 控件的使用方法如下: 4. timer 控件 timer 控件用于有规律的进行页面程序执行。 它可以执行整个页面的程序也可以 只执行页面的局部程序刷新操作。timer 控件的 interval 属性用于设置刷新的时间 间隔。timer 控件设置的属性操作在服务器端运行,并且将这些属性值传递给 javascript 部件。timer 控件并不是非要放在 updatepanel 控件外面,也可以放在 updatepanel 控件内。使用方法如下: ajax 在 webqq 中的应用 10 但是如果把 timer 控件的 interval 属性值设置得过小,会严重加重 web 服务器 的负担。所以,在使用 timer 控件的时候一定要三思而后行 252627。 第四章 ajax 综合应用:webqq 11 第四章 ajax 综合应用:webqq 4.1 项目简介 腾讯公司的 qq 是大家常用的聊天软件,本论文的目标是开发一个 web 版的 qq。 其主要功能包括:两人聊天,多人聊天,新消息到达自动提示,添加、删除好友, 添加、删除黑名单,个人信息管理,头像设置,个人长线,隐身设置等。 4.2 搭建 asp.net ajax 开发环境 本系统的开发环境为 windows xp 操作系统,sql2005 数据库,visual studio 2005,asp.net 2.0 ajax。 在 visual studio 2005 中新建网站,在模板类型中选择“asp.net ajax-enabled web site” , 可以看到 visual studio 2005 集成开发环境工具箱面板中将出现ajax extensions选项卡(其中导入了增值组件 ctp 中的控件)和ajax control, 如图 4-4 所示。 图 4-3 安装 ajax 框架后 visual studio 2005 的新建网站界面 ajax 在 webqq 中的应用 12 图 4-4【工具箱】面板 4.3 配置 asp.net ajax web 应用程序 4.3.1 配置程序集 在开发系统之前需要把system.web.extensions.dll和 microsoft.web.preview.dll 以及 ajaxcontroltoolkit.dll 添加到新建的网站目录 下的 bin 文件夹下 282930。添加好之后如图 4-5 所示。 第四章 ajax 综合应用:webqq 13 图 4-5 添加的程序集在 bin 文件中 4.3.2 web.config 文件的配置 web.config 是一个用于存储 asp.net 应用程序配置信息的 xml 文本文件 3132 3334。当新建好一个网站后会默认的生成一个 web.config 得配置文件,其代码如下 所示。 ajax 在 webqq 中的应用 14 第四章 ajax 综合应用:webqq 15 4.4 web qq 综合设计 4.4.1 需求分析和系统概况 即时通信软件的开发是一个比较复杂的工程,特别是基于浏览器的即时通信项 目,目前大多还停留在“聊天室”的阶段。新浪网 woocall 在这方面做出了比较成 功的尝试,但 woocall 的一个缺陷就是没有“好友”和“群”的概念,用户无法建 立基于 woocall 的关系网,这使它的“用户黏度”大打折扣。 本文的 web qq 吸取了 woocall 的经验和教训。 web qq 除了具有在线聊天功能外, 还增加了“好友”和“群”的概念,并且在界面上完全模仿腾讯公司的 qq。web qq 在聊天时的运行效果如图 4-6 所示 ajax 在 webqq 中的应用 16 图 4-6 web qq 演示页面 4.4.2 功能分析 web qq 的主要目标是实现会员间及时的信息交流,同时辅以“好友”和“群” 的功能,以实现个人关系网。web qq 的实现大致可以分为 3 个模块:登录和用户资 料管理、联系人管理、消息管理。下面详细介绍各个模块的具体功能。 1. 登陆和用户资料管理 适用系统的第一步就是登陆。登陆模块负责检验账号和密码,初始化一个聊天 用户类。在本系统中登陆和注册时合二为一的:用户输入账号和密码后进行校验, 如果数据库中有个账号并且密码正确,则账号校验通过;如果密码不正确,则提示 重新输入密码或用别的账号登陆; 2. 联系人管理 本系统中的联系人分为 3 类:好友、陌生人、黑名单。本模块的功能就是对这 3 类联系人进行增、删、改操作。其中的好友管理是本模块的重点。当自己把某人加 第四章 ajax 综合应用:webqq 17 入了自己的好友列表中,但那人并未把自己加入好友列表中时,自己则在那人的陌 生人组中。如果自己把某人加入黑名单,那么这个人将看不到自己,也不能和自己 聊天,除非自己把他从黑名单中移除。 3. 消息管理 消息模块是本系统最重要的一个模块,系统中的所有功能几乎都是围绕消息展 开的。本模块可以分为三个小部分:web qq 主界面的消息管理、两人聊天的消息管 理、群聊的消息管理。 4.4.3 文件结构 整个工程分为两个项目:一个 web 项目和一个类库项目。类库项目中封装了一 些数据库操作函数, 项目常用函数和一些实体类定义; web 项目包括一个 web service 和相应的表现层文件。整个工程文件的资源管理器窗口如图 4-7 所示。 图 4-7 web qq 的资源管理器窗口 ajax 在 webqq 中的应用 18 4.4.4 数据库的设计 即时通信项目是服务器资源消耗较大,数据库操作较多的项目所以数据库管理 系统应该选择高效率的,本章采用的是 sql server 2005。web qq 的数据库实体主 要包括:用户聊天者,群也可以成为圈子,消息包括两人的聊天消息和群消息。下 面分别加以详细介绍。 聊天用户 聊天用户主要包括两个表:用户详细信息表和用户之间的关系表。 1. 用户详细信息表 userinfo 用户详细信息表主要记录聊天用户个人的一些信息,如账号、密码、姓名、性 别、电话、邮箱、公司、部门、银行账号等。此外,还包括一些特殊字段。 字段 willtime (上线过期时间) :根据这个时间来判断一个用户是否在线。 字段 ifshowonline(是否显示在线状态):值为 0 表示隐身,值为 1 表示在线。 其中在线和隐身的概念和腾讯的 qq 完全相同。 字段 canaddfriend(是否可以自动被加为好友) :该字段值为 1 表示可以直接 加为好友,值为 0 时表示自己被加为好友时需要确认,值为 2 表示不允许任何人把 自己加为好友。 表 4-1 表 userinfo 的字段设计 第四章 ajax 综合应用:webqq 19 2. 朋友列表 friend 表 4-2 表 friend 的字段设计 ajax 在 webqq 中的应用 20 群 和群相关的表也主要有两个:群信息表和群用户表,分别用来存储群的详细信 息和群内的用户。 1. 群表 group 群表 group 包括的信息有:群的名称、建立这个群的用户、建立群的时间、备 注等。 表 group 的字段设计如表 4-3 所示。 表 4-3 表 group 的字段设计 2. 群用户表 group_user 群用户表 group_user 主要是用来记录群内用户的,它包括群的 id、用户账号、 用户加入群的时间等字段。表 group_user 的字段设计如表 4-4 所示。 表 4-4 group_user 的字段设计 消息 即时通信要处理的核心数据就是消息,为了处理方便,本章中把消息分为两种: 两人聊天的消息和群聊天的消息。 1. 两人聊天消息表 msg 两人聊天的消息表msg中包括一种特殊消息: 系统消息。 系统消息是以账号qucha 第四章 ajax 综合应用:webqq 21 的名义向用户发送的消息。某人被别人加为了好友,他就会收到一条 qucha 发送的 系统消息。两个人聊天的消息表 msg 包括的信息有:发送者账号、接受者账号、消 息内容、发送时间、接收时间、是否已读(0 表示已读,1 表示未读) 。表 msg 的字 段设计如表 5-5 所示 表 4-5 表 msg 的字段设计 2. 群消息表 groupmsg 群消息和两人聊天消息有些不同,所以在这里进行了单独设计。群消息表 groupmsg 存储的信息有:群 id、发送者账号、发送时间、消息内容。表 groupmsg 的字段设计如表 4-6 所示。 表 4-6 表 groupmsg 的字段设计 4.4.5 各功能模块的实现 1. 用户登陆注册功能 本系统的重点是对消息消息的处理,因此在登录注册模块没有过多的花费功夫 进行设计,而是将登陆和注册和二为一,登陆的界面如图 5-8 所示。 ajax 在 webqq 中的应用 22 图 4-8web qq 登陆界面 登陆界面的核心代码如下: 2. 两人聊天功能模块 消息都要以集合的形式进行保存,两人聊天的消息类是 msgtable。每个聊天用 第四章 ajax 综合应用:webqq 23 户都有一个单独的 msgtable,这个 msgtable 记录着发给此用户的所有消息(包括系 统消息) 。由于内存毕竟是有限的,所以对每个用户的消息数量进行了一定的限制, 超过这个数量后,消息将被存储如数据库,并清空该用户的消息表。属性 maxrecord 就是实现这个功能的。属性 haveothermsg 标记的是此用户的未读消息是否已经全部 载入了内存。msgtable 定义了两个 add 方法,分别用于处理聊天用户类初始化和用 户发言操作。具体代码如下: ajax 在 webqq 中的应用 24 public msgtable(msg msg1) /内存块已满,首先把已读数据插入数据库,释放部分内存, /如果内存中的数据都是未读,把所有数据都存入内存,释放全 部内存。 第四章 ajax 综合应用:webqq 25 存在于数据库中,则更新其为已读状态 updatestr += or id = + (msg)(listi).id.tostring(); else/位在数据库中,则插入数据库 ajax 在 webqq 中的应用 26 第四章 ajax 综合应用:webqq 27 /用户发言时专用 图4-8 两人聊天界面 3. 群聊天功能模块实现 群消息与两人聊天的消息有所不同。群消息的处理机制是:每个群都包括一个 ajax 在 webqq 中的应用 28 群消息表 groupmsgtable 用来记录群内的所有消息,而这个群消息表有包括一个记 录群内用户访问时间的属性 receivetime。receivetime 是用户访问时间表类 rtt 的 一个实例,rtt 又是 rt 的集合。rt、rtt 和 groupmsgtable 类的实现代码如下: 第四章 ajax 综合应用:webqq 29 ajax 在 webqq 中的应用 30 中还有群消息 public bool haveothermsg set haveothermsg = value; 第四章 ajax 综合应用:webqq 31 get 分内存, ajax 在 webqq 中的应用 32 /如果内存仍满,把所有数据都存入内存,释放全部内存, 第四章 ajax 综合应用:webqq 33 ); 群聊天的功能界面如图 4-9 所示。 图4-9 群聊功能界面 ajax 在 webqq 中的应用 34 4. 消息提示功能 如果有好友给你留言了你会在下次登录之后受到该消息。其功能界面如图5-10 所示。 图4-10 消息提示功能 5. 显示用户在线状态功能 该功能实时显示用户的在线与离线状态,其实现代码如下: 第四章 ajax 综合应用:webqq 35 ajax 在 webqq 中的应用 36 第四章 ajax 综合应用:webqq 37 ajax 在 webqq 中的应用 38 其实现效果如图 4-11 所示 图 4-11 在线与离线效果图 第四章 ajax 综合应用:webqq 39 6. 聊天窗口拖动功能 用鼠标光标来拖动某个图层在浏览器窗口移动是当前非常流行的一种技术,本 部分介绍的代码就是用来实现这个功能的。 整个功能的实现都封装在一个drag类中。 ajax 在 webqq 中的应用 40 /需要移动,则继续移动 第四章 ajax 综合应用:webqq 41 return false; ajax 在 webqq 中的应用 42 其拖动效果如图 4-12 所示 图4-12 拖动后的效果图 7. 个人资料管理功能 个人资料的管理主要通过 detail.aspx 页面文件处理, 这个页面负责个人资料的显 示和修改,页面的运行效果图如图 4-13 所示。 第四章 ajax 综合应用:webqq 43 图 4-13 个人资料管理运行图 服务器端代码 detail.aspx.cs 文件的核心代码如下: ajax 在 webqq 中的应用 44 top.frames(chatqq).myalert(修改成功!);, true); 4.5 本章小结 本章对ajax技术在即时聊天系统中进行了实现,是本论文的重点。详细介绍了 microsoft asp.net 2.0 ajax框架结构,为 ajax 的应用搭建了asp.net ajax开发环 第四章 ajax 综合应用:webqq 45 境,在web qq中进行实例分析,通过源代码分析、图例、图表等手段,深入浅 出地讲述ajax技术在web应用领域中的实现方法。同时对比原传统模式下的系统开 发,充分体现出ajax模式下系统开发的优越性。 ajax 在 webqq 中的应用 46 第五章 总结与展望 5.1 论文工作总结 ajax是指一种创建交互式网页应用的网页开发技术。 ajax技术采用了异步调用的 方式, 促使页面局部刷新, 所以web可以仅仅向服务器传送和接收自己所需要的数据, 从而减少网络流量, 并可以使web应用程序具有更高的即时响应性, 更好的可交互性 和更方便的个性化服务,使用户像使用桌面应用程序一样使用web应用程序。ajax是 web应用开发的一种新理念,正在成为web应用领域的研究热点。 本文研究的主要内容是基于asp.net ajax的web开发应用。在研究思路方面,首 先研究了ajax技术及其实现机制,其次围绕ajax设计模式下web开发的相关问题展 开,对ajax交互模型和传统web应用交互模型进行了详细的比较分析,从应用原理和 设计模式方面探讨了ajax模式与传统模式下的web开发的区别与联系。然后深讨了 microsoft公司提供的asp.net 2.0 ajax框架,搭建出一个完全的ajax应用框架。最后 将ajax技术应用到系统webqq的设计开发中,充分发挥出ajax模式下系统开发 的优越性,改善了用户体验。 47 参考文献参考文献 l 丁娜.基于 ajax 的 web2.0 技术研究j.浙江: 浙江大学计算机学院, 2007,10-15 2 杨洁.基于 asp.net ajax 的 web 开发研究及应用j.湖北:武汉理工大学信息 工程学院,2008,12-40 3 柯自聪.ajax 开发精要概念、案例与框架m.北京:电子工业出版社, 2006,01-120 4 白璐.ajax 设计模式下 web 开发的研究与应用j.大连:大连海事大学, 2007,11-21 5 黄志春.基于 ajax 技术的环保监控系统j.浙江:浙江大学计算机与软件学院, 2006,11-14 6 李健.基于jms技术并集成在服务器端的即时通讯系统j.四川: 城都理工大学, 2005,10-51 7 张文仲. asp.net 网络开发技术m.北京:人民邮电出版社,2006,3-12 8 王珊 萨师煊. 数据库系统概论m 北京:高等教育出版社,2006,241-258 9 谭明红.基于页面差异模式的 ajax 框架研究及应用j.重庆:重庆大学计算机 学院,2007,35-57 10 耿勇.web 中 ajax 应用的研究j.武汉:武汉理工大学计算机科学与技术学院, 2007,14-24 11 李用江,杨世勇,辛向军.visual c#.net 与网络数据库编程m.西安:西安 交通大学出版社,2007,04-07 12 王宏宇. asp.net 2.0 ajax 典型应用m.北京:人民邮电出版社,2007,09-14 13 上海市计算机应用能力考核办公室.网页开发语言 javascript 实践教程 .上 海:上海交通大学出版社,2004,10-18 14 王道乾.基于 ajax 的高校档案管理系统的设计与实现j.重庆:重庆大学软件 学院,2007,21-35 15 纪伟. ajax 技术在教学网站中的应用研究j.北京:北京交通大学计算机与信 息技术学院,2007,13-24 16 jesse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政财务费用支出管理细则
- 幼儿园小班社会教案好听的名字
- 2025年国际公共健康与合作的测评试题及答案
- 《移动电子商务》课件53.微信营销
- 《移动电子商务第二版》课件1.移动电子商务概述
- 肺部穿刺护理查房
- 2025年城市规划与管理专业考试卷及答案
- 2025年戏剧与影视学专业毕业考试试卷及答案
- 四年级上册综合实践活动《巧手工艺坊-多彩的纸艺世界》(课件)(内嵌视频)
- 蒸汽产生基础培训
- 做课件教学视频
- 2025年特种设备安全考试题库特种设备安全管理人员法规应用试卷
- (2025)辅警招聘考试试题库附答案详解(综合题)
- 合同协议书范本模板图片
- 小说作者授权协议书
- 特殊教育学校班主任培训
- 1.1 物质的分类 课件-2024-2025学年高一上学期化学人教版(2019)必修第一册
- 幼儿教师沟通技巧培训课件
- 2025年安全知识竞赛题库及答案(共150题)
- 医院培训课件:《新生儿早期基本保健专家共识(2020)解读》
- 区块链与慈善公益商业模式的创新与探索
评论
0/150
提交评论