您的位置:首页 > Web前端 > JavaScript

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

2008-04-14 15:56 183 查看
程序的代码



介绍:
这里我增加了用户许可协议和注册信息。将游客聊天升级为可注册聊天并增加了许可协议的确认。新用户必须注册。已经注册的用户必须用用户名和密码登陆。
注册聊天:
在开始页面,需要添加一个密码区和连接到注册页的按扭。登陆函数是附加密码判定功能。在该函数中,用用户名和密码代替替换反复注册检测,如果用户名和密码正确,一个新的对话建立。用户引入函数包含(昵称,密码,姓,名,邮件)。两个函数用一个单一的存储方式,何以是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/。
结论:
你仍然在搜索什么更特别的程序吗?在下一部份,将介绍如何建立一个包含许多房间的聊天室。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: