分享
 
 
 

利用ASP开发网络聊天室

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

经 常 在Internet 上 冲 浪 的 网 友

恐 怕 很 少 有 人 没 有 去 过 聊 天 室 胡乱神聊。 你 只 要 稍 微

留 意 一 下 就会 发 现 这 些 聊 天 室 大 多 是 用CGI 程 序 或 者 用JAVA

开 发 的 Applet 维 护 的。 开 发 过 这 类CGI 或Applet 的 程 序 员 都 知

道, 这 种 开 发 工 作 是 费 时 费 力 的。 那 么 有 没 有 一 种 更

简 单、 省 力 的 开 发 方 式 呢 ? 答 案 是 肯 定 的。

关 于ASP 的介绍有许多计算机杂志介绍过,在这里不在赘 述。

一、 聊 天 室 的 规 划:

1、 谈 话 内 容 储 存 方 式 的 选 择:

在 客 户 机 上 显 示 即 时 谈 话 的 内 容 应 以 什 么 方 式 储 存

在 服 务 器 呢 ?ASP 有 两 种 选 择, 一 种 是 以 文 本 文 件 方

式, 一 种 是 以 数 据 库 方 式。 但 笔 者 感 觉ASP 对 文 本 文 件

操 作 的 指 令 远 不 如ADO(Active Data Object) 提 供 的 对 数 据 库 操 作

的 指 令 多。 所 以 利 用ADO,ASP 能 对 数 据 库 灵 活 地 操 作, 比

如 插 入、 删 除、 更 新、 查 询 等 等。 笔 者 选 择Access 数 据 库

来 储 存 谈 话 的 内 容。 该 数 据 库 内 容 只 保 留 一 天( 可 根

据LAN 的 实 际 情 况 确 定 时 间 长 短) 的 谈 话 内 容。

2、 聊 天 室 界 面 的 设 计: 为 了 客

户 能 够 方 便 地 浏 览 站 点 的 内 容, 又 能 尽 可 能 地 显 示 聊

天 室 的 内 容, 笔 者 在 一 幅 主 页 里 设 计 了 三 帧。 左 边 一

帧 显 示 的 是 站 点 的Index。 右 边 一 帧 又 分 成 上 下 两 帧。 上

帧 占70%, 用 来 显 示 当 前 聊 天 室 的 内 容; 下 帧 占30%, 用 来

提 供 一 个 文 本 输 入 框 和 供 用 户 反 馈 的 按 钮。

3、 进 入 聊 天 室 的 步 骤: 象 大 多

数 聊 天 室 一 样, 首 先 应 该 提 供 给 用 户 一 个 登 录 界 面,

由 用 户 输 入 自 己 的 名 字 或 别 名 和 自 己 随 意 给 定 的 密

码。 如 果 输 入 的 用 户 名 与 线 的 用 户 名 相 同, 则 提 示 用

户 重 新 选 择 用 户 名 或 重 新 输 入 密 码, 以 保 证 在 线 的 所

有 用 户 名 都 是 唯 一 的。 登 陆 成 功 后 进 入 聊 天 室, 内 容

显 示 帧 显 示“ 欢 迎 加 入” 的 欢 迎 信 息。 用 户 就 可 以 在

文 本 输 入 区 内 输 入 谈 话 内 容 了。

二、 设 计 过 程 和 开 发 技 巧:

1、 设 计ODBC 系 统 数 据 源: 如 前 所

述, 本 开 发 采 用ASP 对 ADO 进 行 操 作, 因 此 必 须 先 对 数 据

源 进 行 设 置。 在NT 服 务 器 的 控 制 面 板 里 双 击ODBC 图 标,

在 系 统DSN 页 添 加 系 统DSN, 选 择Microsoft Access Driver,Data Source Name

为‘fybchat’, Database 选 择Chat 目 录 下 的chat.mdb. 该 数 据 库 包 括

下 面 几 个 字 段:name, content, password, chattime, chatdate, 分 别 以 来 存

储 姓 名、 谈 话 内 容、 密 码、 谈 话 时 间 和 谈 话 日 期。

2、 登 录 界 面 设 计: 登 录 界 面 为

一html 页, 包 含 一 些 警 告 信 息 和 一 个Form。 该Form 以 来 获 取

帐号和 密 码, 如 下 所 示:

<form

method="post" action="receivedata.asp">帐号:

<input type="text" name="usname" >密 码:

<input type="password" name="uspassword" >

</center >< br >< br > < center >

<input type="submit" value=" 进 入" >

<input type="reset" value=" 重 填" >

</center >

<input type="hidden" name="content" value="" >

</form>

通 过 提 交 按 钮 来 激 发receivedata.asp。 该ASP

文 件 主 要 来 保 证 在 聊 天 室 里 没 有 两 个 用 户 是 同 帐号

的。 用 户 提 交 信 息 后, 该 文 件 打 开chat.mdb 检 查 是 否 已 经

有 该帐号, 如 果 有 但 密 码 不 对 就 提 醒 用 户 重 新 输 入 密

码, 如 果 没 有 那 么 用 户 就 顺 利 进 入 了 聊 天 室。 进 入 聊

天 室 界 面 的 功 能 由 下 列 语 句 完 成:

<FRAMESET

ROWS="70%,30%" >

<FRAME SRC="forum.asp" NAME="main"

MARGINWIDTH="1"

MARGINHEIGHT="1" Noresize >

<FRAME SRC="frft.asp?kname= <% =name%>"

NAME="footnotes"

MARGINWIDTH="1" Noresize >

</FRAMESET >

注 意 这 里 有 一 个 技 巧, 通 过 参 数kname 将 用 户 的

帐号 隐 藏 在 客 户 的 浏 览 器 里 面 了, 这 样 一 来, 用 户 每

次 提 交 谈 话 内 容 的 同 时 也 把 他 的帐号提 交 了。

||||||3、 文 本 输 入 区 的 设 计: 文 本 输 入 区 是 由frft.asp 产

生 的。 如 上 所 述, 用 户 每 次 提 交 谈 话 内 容 的 同 时 也 把

他 的 帐号 提 交 了, 用 户 提 交 谈 话 内 容 的 动 作 是 激 活forum.asp。

forum.asp 的 作 用 是 刷 新 聊 天 室 的 内 容。Frft.asp 内 容 如 下:

<!DOCTYPE HTML PUBLIC " -//IETF//DTD

HTML//EN" >

<html >

<head >

<meta http-equiv="Content- Type" content="text/html;

charset=gb_2312-80" >

<meta name="GENERATOR" content="Microsoft FrontPage 2.0" >

<title >

</head >

<body >

<% kname=request.QueryString("kname")% >

<base target="main" >

<form name="fm1" method="POST" action="forum.asp">

<p align="center" ><input type="text" size="90"

name="content" > <p align="center" ><input

type="button" name="B1" value=" 提 交/ 刷 新" >

<input type="reset" name="B2" value=" 重 写"

>< /p >

<input type="hidden" name="kname" value=< % =kname% >>

</form >

<SCRIPT LANGUAGE="VBScript" >

<!--

Sub IeTimer1_Timer()

if fm1.content.value="" then

fm1.content.value=""

fm1.submit

end if

end sub

sub b1_onclick()

fm1.submit

fm1.content.value=""

end sub

-->

</SCRIPT >

<OBJECT ID="IeTimer1" WIDTH=39 HEIGHT=39 CLASSID="CLSID:59CCB4A0-727D-

11CF-AC36-00AA00A47DD2" CODEBASE="http://208.208.208.201/asp/ietimer.ocx"

>

<PARAM NAME="_ExtentX" VALUE="1005" >

<PARAM NAME="_ExtentY" VALUE="1005" >

<PARAM NAME="Interval" VALUE="7000" >

</OBJECT >

</body>

</html >

这 时 又 出 现 了 一 个 问 题, 用 户 必 须 不

停 提 交 才 能 看 到 最 新 的 聊 天 室 内 容, 这 显 然 给 用 户 带

来 了 不 便。 于 是 考 虑 用 一 个timer 的ActiveX 控 件 来 控 制 聊 天

室 的 内 容 岂 不 更 好 ? 于 是 选 用 了Ietimer, 如 上< object >

… …< /object > 所 引 用, 每 隔7 秒 钟 聊 天 室 内 容 自 动 更

新 一 次。 这 样 即 使 用 户 不 想 参 加 聊 天 也 可 以 坐 在 机 器

边 看 别 人 聊 天 了。

三、 总 结

由 上 述 开 发 过 程 我 们 可 以 知 道, 利 用ASP 程 序 可 以

很 灵 活 地 传 递 参 数, 并 且 可 以 很 灵 活 地 将 程 序 流 程 分

割 成 几 个 单 独 的ASP 程 序, 非 常 利 于 程 序 的 调 试, 对ActiveX

控 件 的 支 持 和 对DAO 的 强 大 操 作 能 力 使 得 利 用 ASP 能 够 开

发 功 能 非 常 强 大 的 程 序。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有