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

在 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]GOCREATE TABLE [dbo].[ACTIVITY] (    [handle_id] [int] NULL ,    [action_time] [datetime] NULL) ON [PRIMARY]GOCREATE TABLE [dbo].[HANDLES] (    [handle_id] [int] IDENTITY (1, 1) NOT NULL ,    [handle] [nvarchar] (63) NULL) ON [PRIMARY]GOCREATE 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 供用户输入消息。

以上就是概述IE和SQL2k开发一个XML聊天程序的内容,更多相关内容请关注PHP中文网(www.php.cn)!

更多相关文章

  1. HTML中的XML数据岛记录编辑与添加的详细介绍
  2. 使用JavaScript访问XML数据
  3. 对XML数据使用XMLConvert
  4. 详细介绍把数据转换成XML格式的好处
  5. XML数据库中几个容易混淆的概念详细介绍
  6. 使用正则表达式进行xml数据验证的代码实例详解
  7. 使用XMLHTTP发送超长XML表单数据的详情
  8. HTML中的XML数据岛记录编辑与添加代码实例详细介绍
  9. 关于XML数据库中几个容易混淆的概念详解

随机推荐

  1. 【读书笔记】【Android 开发艺术探索】第
  2. android SDK系统图片资源的路径。
  3. android 相对定位布局方向
  4. Android启动画面实现
  5. android 删除的警告对话框
  6. android usb host 读写USB设备
  7. Android下监听Home键
  8. 修改Android EditText光标颜色
  9. android九宫格
  10. :Android Market的 Loading效果