在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/。
结论:
你仍然在搜索什么更特别的程序吗?在下一部份,将介绍如何建立一个包含许多房间的聊天室。
介绍:
这里我增加了用户许可协议和注册信息。将游客聊天升级为可注册聊天并增加了许可协议的确认。新用户必须注册。已经注册的用户必须用用户名和密码登陆。
注册聊天:
在开始页面,需要添加一个密码区和连接到注册页的按扭。登陆函数是附加密码判定功能。在该函数中,用用户名和密码代替替换反复注册检测,如果用户名和密码正确,一个新的对话建立。用户引入函数包含(昵称,密码,姓,名,邮件)。两个函数用一个单一的存储方式,何以是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/。
结论:
你仍然在搜索什么更特别的程序吗?在下一部份,将介绍如何建立一个包含许多房间的聊天室。
相关文章推荐
- XMLHTTP+javascript+Asp写得聊天室,无刷新实现
- [Asp.net 开发系列之SignalR篇]专题三:使用SignalR实现聊天室的功能
- ASP + XML + JavaScript 实现动态无限级联动菜单
- ASP.NET AJAX客户端编程之旅(五)——以组件的思想开发Ajax应用:行为、绑定及xml-script
- Asp.net 2.0控件开发相关调试(JavaScript调试和自定义控件设计时调试)
- Asp.net 2.0控件开发相关调试(JavaScript调试和自定义控件设计时调试)
- ASP+XML+JavaScript实现动态无限级联动菜单
- asp.net结合xml开发网络硬盘
- 开发总结之Javascript (asp.net)
- Javascript、ASP解析(远程)XML
- Asp.netXml开发网络硬盘
- Asp.net+Xml开发网络硬盘
- ASP + XML + JavaScript 实现动态无限级联动菜单
- ASP.NET开发在JavaScript有中文汉字时出现乱码时简单有效的解决方法
- Asp.net 2.0控件开发相关调试(JavaScript调试和自定义控件设计时调试)
- Asp.net结合Xml开发网络硬盘
- 一起谈.NET技术,网络硬盘开发技巧之ASP.NET+XML
- asp.net+jquery+xml实现最简单的聊天室
- 遍历获取ASP.NET页面控件的名称及值 后台调用前台javascript方法报错:“缺少对象”的解决方法 xml与DataSet的互转换类
- ASP + XML + JavaScript 实现动态无限级联动菜单