嘟嘟老窝

上帝给了我一双黑色的眼睛,我却用它来翻白眼......

导航

« 冬天来了,给Blog换个季 开始ruby... »

AJAX版的聊天室

Aether之邀写一个基础点的AJAX操作实例,想来想去就写一个聊天室吧,以前写AJAX时一来偷懒,二来为了简单,都用纯文本或者javascript数组进行交互,这次改成纯粹的xml操作。想得时候很简单,无非就处理发送消息,接收消息,登陆和退出这几种事件,但真正要写的时候还是颇费周折,主要是ASP对Session间的消息(对象)传递功能太弱了,只能在Application、数据库、自定义服务端组件三种方法中挑一个,自定义服务端组件先Pass了,既然要写一个轻量级的,数据库能不用就不用了,最后还是盯上了Application。

聊天室最重要的功能就是一个用户发出消息后所有用户都要能接收到,接受到消息后应该给这则消息一个标记或者删除操作。ASP的Application对象可以实现Session间的数据交互,再结合类似于Map的Scripting.Dictionary这个内置对象,应该就能实现我想要的效果。但是在实际编写过程中发现Scripting.Dictionary对象实例根本无法存储到Application中,查了MSDN后才知不允许将OBJECT和自定义组件以外的对象存储到Application中,包括自定义Class,晕,只得另想办法,最后选定用数组方式解决。

客户端我用javascript的prototype(原型)功能写了一个ChatRoom类,用面向对象的方式实现了发送接收消息,登录和退出。下面就是聊天窗口,请输入昵称登录后就能开始聊天了:)程序还有很多bug,实在无心调试了。

 

下载:http://www.duduwolf.com/test/chatRoom.asp.txt

<script language="javascript" type="text/javascript" src="http://www.duduwolf.com/test/chatRoom.asp?act=script"></script>
<div id="chatRoom"></div>
<script>var chat = new ChatRoom('chat', document.getElementById('chatRoom'), 500, 400);</script>

  • 该日志的引用地址:
  • http://www.duduwolf.com/cmd.asp?act=tb&id=271
  • Ajax版的聊天室。(引用)
  • <? 将的技术手册 ?>
  • From [url=http://www.duduwolf.com]嘟嘟老窝[/url]
    [file=uploads/200512/21_123718_chatroom_asp.txt]点击下载[/file]
    使用:
    [code]<script language="javascript" type="text/javascript" src="http://www.duduwolf.com/test/chatRoom.asp?act=scr...
  • 2005-12-21 12:39:29
  • 1.W先生 | (home)
  • 尊敬的老窝先生,我出离地愤怒了,我输入了十句话,居然没有一句显示出来。
  • 2005-11-25 10:35:28
  • 2.Aether | (home)
  • 老大,我也发现这个问题了……
  • 2005-11-25 11:01:13
  • 3.duduwolf | (home)
  • 哈哈,不好意思,有点问题,现在好了
  • 2005-11-25 11:07:22
  • 4.duduwolf | (home)
  • 程序有bug,原因主要出在session的注销时我无法得到消息,因为没有启用Glogal.asa文件的Session_End事件,所以我是通过客户端浏览器的onunload触发session注销动作的,这在操作上很不稳定:(
  • 2005-11-25 11:11:20
  • 5.D | (home)
  • 不行
  • 2005-11-26 7:14:09
  • 6.Jack | (home)
  • 不错,做的相当不错
  • 2005-11-26 13:18:27
  • 7.Aether | (home)
  • Jack也过来了,听你说一句不错好像还真是不容易……哈哈,你也写一点教程吧。
  • 2005-11-27 23:33:13
  • 9.Aether | (home)
  • 是,看mail就知道了。
  • 2005-11-28 18:03:28
  • 10.怕怕 | (home)
  • 请教一下,windows server2000是不是不可以使用JavaScript从远程访问XML数据?我是在文件中远程读取xml文件,在本地用http://localhost或直接打开文件时可以正常解读xml,但放到web服务器中就无法运行了,请问能否设置web服务器允许这种方式?如允许会有什么风险?刚接触ajax不是太了解js,求解.多谢先
  • 2005-12-1 2:07:35
  • 11.duduwolf | (home)
  • 浏览器,包括IE和firefox不支持跨域读取,比如你在www.duduwolf.com/default.asp的文件中无法通过xmlHttp访问www.sina.com.cn的数据
  • 2005-12-1 8:49:32
  • 12.本拉登 | (home)
  • 呵..看到我的名字,叫什么了吗??不想被攻击的话..就给我的cn_c_vb@yahoo.com.cn留下的您的QQ号..
  • 2005-12-4 20:22:19
  • 13.hnboy2005 | (home)
  • 这个东西 能用在每个blog上吗
    不知道有什么新的应用
  • 2005-12-4 22:18:19
  • 14.TT | (home)
  • 在Asp.net用Ajax怎么得到ViewState的东西
  • 2005-12-7 15:27:26
  • 15.leel | (home)
  • 大哥!能介绍本AJAX的书吗???
    初学者用的!
  • 2005-12-27 13:40:32
  • 16.duduwolf | (home)
  • to leel:看我首页的侧边栏的第一个图标,点击去...
  • 2005-12-28 11:43:08
  • 18. | (home)
  • 能不能把你的聊天室代码发一下我的邮箱qq522540@163.com 谢谢了
  • 2006-1-4 19:25:07
  • 21.yyseek | (home)
  • dudu 看看这个基于ajax的Im http://51seek.vicp.net
  • 2006-2-7 21:55:57
  • 23.ok | (home)
  • bu cuo, tong shi da kai liang ge hua mian ,hai shi hen you xiao guo de
  • 2006-2-17 19:17:15
  • 25.可可 | (home)
  • 要实现和你这个页面一样的效果,怎么做?
    你的文件下载下来了要怎么用呢?
  • 2006-3-15 16:54:46
  • 26.过路的 | (home)
  • 快速输入1,2,3,4,5,发现丢失语句的情况非常严重
  • 2006-3-17 10:26:23
  • 27.test | (home)
  • 除了登录,输入很多句都没有出现!!!
  • 2006-4-13 12:06:32
  • 28.w51652827511 | (home)
  • 飞网-返点机票!机票返点!全球机票专家!!!
  • 2006-4-19 13:01:09
  • 33.水手 | (home)
  • 哈哈~~
    这个页面做得真清爽。
  • 2006-6-3 22:31:01
  • 34.流星雨 | (home)
  • 我昨天把站长这个聊天完善了一下,主要大改动就是增加了私聊的功能,另外就是修了显示的一些问题,准备放到站上作为一个即时交互的工具。
    http://www.jmxxw.com/
  • 2006-6-11 10:16:58
  • 41.anyone | (home)
  • 你好,我看你的网站讨论一些ajax的话题,我在英国,也和一些朋友在搞这些方面的事情,不知有没有兴趣过来和我们一起做?
    2anyone*gmail.com
    等你的email。
  • 2006-7-6 0:30:16

反向链接列表

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

<< 2008·1 >>

Sun

Mon

Tue

Wen

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Search

Powered By Z-Blog 1.4 SP1 Build 50824 - modify by duduwolf

Copyright 1999-2005 duduwolf.com Some Rights Reserved.