当前位置: 代码网 > it编程>网页制作>Xml > 概述IE和SQL2k开发一个XML聊天程序

概述IE和SQL2k开发一个XML聊天程序

2024年05月19日 Xml 我要评论
不同浏览器之间多年的竞争导致产生了很多工具帮助开发人员完成以前很难做到的任务。现在,只要一小段脚本,你就可以创建一个应用程序将数据绑定到用户控件,这样就可以通过一个内嵌的代理类型的控件与服务器通信。在

不同浏览器之间多年的竞争导致产生了很多工具帮助开发人员完成以前很难做到的任务。现在,只要一小段脚本,你就可以创建一个应用程序将数据绑定到用户控件,这样就可以通过一个内嵌的代理类型的控件与服务器通信。

在 internet explorer(ie)中,这些东西包括 xml 数据岛和 xmlhttp 对象,xml 数据岛用于将数据绑定到表单元素,xmlhttp 对象用于在当前页面内不导航到其它页面的情况下创建对服务器的同步和异步调用。我将使用这两个易用的特性创建一个简单的聊天应用程序,该应用程序由一些充当 ui 的 asp 页面,实现客户端功能的 javascript,和 sql server 2000 中完成商业逻辑的 t-sql 所组成。

客户和服务器使用 xml 通信。在 web 服务器接收到一个消息块之后,消息块会追加到 sql server 中的一个带有时间戳的 messages 表中。基于预先定义好的时间间隔,客户会从服务器请求更新信息,包括自上一次从服务器请求信息到现在为止追加到数据库中的消息列表和联机用户列表。

客户将通过 xmlhttp 对象发送一个 <action/> 到服务器。动作(action)要么是请求刷新消息和用户列表,要么是发送一个新消息。这些动作保存在一个叫做 actions 的表中。服务器将响应相应的请求或者接受一个新消息然后追加到 messages 表中。

当服务器响应一个消息的请求的时候,会返回上次请求之后的所有新消息的一个列表。为了跟踪客户的活动,我使用一个 activity 表包含客户活动的日期时间(datetime),客户的标识保存在表 handles 中,该表的名字很直观。

下面是建表的脚本:

create table [dbo].[actions] (
    [action_id] [int] identity (1, 1) not null ,
    [action_name] [varchar] (50) null ,
    [action_descr] [varchar] (255) null
) on [primary]
go

create table [dbo].[activity] (
    [handle_id] [int] null ,
    [action_time] [datetime] null
) on [primary]
go

create table [dbo].[handles] (
    [handle_id] [int] identity (1, 1) not null ,
    [handle] [nvarchar] (63) null
) on [primary]
go

create table [dbo].[messages] (
    [msg_id] [int] identity (1, 1) not null ,
    [message] [nvarchar] (255) null ,
    [action_id] [int] null ,
    [action_time] [datetime] not null
) on [primary]

所有的数据操作将通过存储过程完成。所有的数据接口将通过一个充当 web 服务器和 sql server 2000 的联络员的泛型 com 完成。com 对象暴露一个我要使用的方法runspreturnstream。该方法的第一个参数为存储过程的名字,第二个参数是参数数组的数组。参数数组是一个如下格式的简单数组:(paraname, paramtype, paramlength, paramvalue)。paramtype是 ado parameter type 枚举之一。一个 asp 页面负责接受动作和创建响应,我把它叫做handleaction.asp。

聊天页面将包含一个区域显示聊天消息;这个区域是一个包含在 div 的 table。这个 table 被绑定到一个xmlmessages xml 数据岛上。另外一个区域显示当前的用户;这个区域也是一个包含在 div 中的table,它被绑定到一个xmlusers xml数据岛上。另外还有一个 textarea 供用户输入消息。


--------------------------------------------------------------------------------
本文作者:phillip perkins是ajilon consulting的签约人。他的经验很丰富,从机器控制和客户/服务器到企业内部网应用。

(0)

相关文章:

  • 用Flash和XML来构造一个聊天室

    用Flash和XML来构造一个聊天室

    点击这里下载源文件前面的教程我们介绍了flash与xml结合使用的原理以及一个论坛的实现,下面我们继续结合flash与xml来实现一个简单的聊天室,有在线聊天、... [阅读全文]
  • XML相关技术资料

    XML相关技术资料

    xmlhttp技术: ---------------------------------------------------------- 一、数据库远程管理技... [阅读全文]
  • XML轻松学习手册(一):XML快速入门

    XML轻松学习手册(一):XML快速入门

    前言xml越来越热,关于xml的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:xml到底有什么用,我们是否需要学习它?我想就我... [阅读全文]
  • 实例讲解:开发SWING的XML框架(2)

    实例讲解:开发SWING的XML框架(2)

    并发处理如何实现 在这个使用框架开发的程序中,面板的开发者可以将经历集中到如何表达信息而不用担心用户接口的流。一旦xml流被定义,许多开发者都能够同时并发的在应... [阅读全文]
  • XSL简明教程

    XSL简明教程

    一. xsl入门1.xsl---xml的样式表 html网页使用预先确定的标识(tags),这就是说所有的标记都有明确的含义,例如<p>是另起一行&... [阅读全文]
  • XHTML 1.0:标记新的开端

    XHTML 1.0:标记新的开端

    新标准的熟悉和入门内容:还在用html编写文档?如果是的话,就不符合当前标准了。2000年1月26日,xhtml1.0成为万维网联盟(w3c)的建议。根据w3c... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com