在ASP下用JavaScript 和 XML开发聊天室

diskonline 2008-04-14 03:58:12
程序的代码


介绍:
这里我增加了用户许可协议和注册信息。将游客聊天升级为可注册聊天并增加了许可协议的确认。新用户必须注册。已经注册的用户必须用用户名和密码登陆。
注册聊天:
在开始页面,需要添加一个密码区和连接到注册页的按扭。登陆函数是附加密码判定功能。在该函数中,用用户名和密码代替替换反复注册检测,如果用户名和密码正确,一个新的对话建立。用户引入函数包含(昵称,密码,姓,名,邮件)。两个函数用一个单一的存储方式,何以是XML文件或一个相关的数据库。这里用的是XML。
出于操作方面的原因,XML数据必须总是存在于内存中,并且磁盘I/O操作应该是很少出现的。先前写的一个共享XML的类,用很小的改动,满足了这种需要。改动只是添加两个函数:save(fileName) 和 load(fileName),用来读写XML。为了访问单一的节点属性,使用UserInfo类。为实现良好的设计架构,使用了UserDataXML类,该类封装了SharedXML 和 UserInfo类。
数据的算法如下:
Data loading
Initial data load must be on application startup or on first data access. For simplicity, we use the Application_OnStart event.
引入数据必须在程序开始或在第一次进入数据时。为了简化,使用了Application_OnStart事件如下:
function Application_OnStart() {
// Initial data load.
var usersData = new UsersDataXML;
usersData.initialize();
}

数据保存:
数据的保存应该在每个变化产生时发生;这里只是在用户注册时调用。如果数据频繁的改变,则我们用一个自动存取的功能。这里保存操作是在相同的函数里,可是在比较难控制的时段。这意味着时间不够,在存储操作时并没有进行实际的写入。为了考虑到这种可能性,应该使用UserData_autoSave()方法。在这里,我需要一个最终的调用来在程序结束之前保存数据,在ASP中,该程序是Application_OnEnd()。
注意,XML DOM需要物理内存相当于它自身的10倍大。
其它重要的方面是提供合法的文件路径和是否允许读写操作。如果一个文件不存在,则会在第一个用户注册后建立,通过registerUser()方法。
可注册的聊天室包含允许读写的文件夹。可能是一个DB文件夹,该文件夹并不是该网络程序的子文件夹。例如:<Your local path>\Samples\RegistrableChat\DB\。
结论:
你仍然在搜索什么更特别的程序吗?在下一部份,将介绍如何建立一个包含许多房间的聊天室。
...全文
41 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiamingwudi 2008-08-28
  • 打赏
  • 举报
回复
学习
zhouzhou830930 2008-04-14
  • 打赏
  • 举报
回复
好像很有趣,不过我不懂xml!学习真是辛苦啊!

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧