【小程序】一个简单的asp聊天室演示
asp吧
全部回复
仅看楼主
level 7
黑睿 楼主
这是一个简单的聊天室代码,只有一个文件,无聊的时候写的,发来给需要的asp爱好者参考,也欢迎大家继续该机增加更多的功能,方便的话也请把修改版本发我一份共同交流学习,写的不好高手莫要见笑。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
'名称:asp简易聊天室
'作者:黑睿(原创)
'日期:2010/9/7
'说明:只实现了简单的聊天功能,可随意转载、修改使用
Option Explicit
dim rsAct : rsAct =Request("act")
Select Case rsAct
Case "send" : Call SendMessage()
Case "get" : Call GetMessage()
Case Else : Call ChatRoom()
End Select
Sub SendMessage()
dim rsMessage : rsMessage =Left(Request.Form("message"), 100)
If rsMessage ="" Then
    Response.Write(vbescape("请输入要发送的聊天信息!"))
    Response.End()
End If
rsMessage =Replace(rsMessage, "|", "")
rsMessage =Replace(rsMessage, vbcrlf, "")
rsMessage =Replace(rsMessage, "<", "<")
rsMessage =Replace(rsMessage, ">", ">")
rsMessage =Replace(rsMessage, """", """)
rsMessage =Replace(rsMessage, "'", "´")
Application.Lock()
dim nLast_Id : nLast_Id =Application("last_id")
If nLast_Id ="" or isNull(nLast_Id) Then nLast_Id =0
dim sNew_Message : sNew_Message =(nLast_Id +1) &"|聊友["& Session.SessionID &"]|"& rsMessage &"|"& Now()
If Application("message_list") <>"" Then Application("message_list") =vbcrlf & Application("message_list")
Application("message_list") =sNew_Message & Application("message_list")
Application("last_id") =nLast_Id +1
Application.UnLock()
Call GetMessage()
End Sub
Sub GetMessage()
Application.Lock()
dim sMessage_List : sMessage_List =Application("message_list")
dim nLast_Id : nLast_Id =Session("last_id")
If Application("last_id") ="" or isNull(Application("last_id")) Then Application("last_id") =1
If nLast_Id ="" or isNull(nLast_Id) Then
    nLast_Id =Application("last_id")
    Session("last_id") =nLast_Id
End If
If sMessage_List ="" Then Response.End()
sMessage_List =Split(sMessage_List, vbcrlf)
dim nTemp, sTemp
For nTemp =0 to ubound(sMessage_List)
    If Clng(Split(sMessage_List(nTemp), "|")(0)) >Clng(nLast_Id) Then
     If sTemp <>"" Then sTemp =vbcrlf & sTemp
     sTemp =sMessage_List(nTemp) & sTemp
     If nTemp =0 Then Session("last_id") =Split(sMessage_List(nTemp), "|")(0)
    Else
     Exit For
    End If
Next
'输出获取到的信息
If sTemp <>"" Then Response.Write(vbescape(sTemp))
'清理5分钟前信息
sTemp =""
For nTemp =0 to ubound(sMessage_List)
    If DateDiff("n", Split(sMessage_List(nTemp), "|")(3), Now) <10 Then
     If sTemp <>"" Then sTemp =sTemp & vbcrlf
     sTemp =sTemp & sMessage_List(nTemp)
    End If
Next
Application("message_list") =sTemp
Application.UnLock()
End Sub
%>
<script language="javascript" runat="server">
function vbescape(psText){
return escape(psText);
}
</script>
<%
Sub ChatRoom()
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

2010年09月08日 05点09分 1
level 7
黑睿 楼主
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>简易聊天室</title>
<style type="text/css">
body,td,th {
font-size: 12px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
#m_cont{
width: 600px;
height: 500px;
border: 1px solid #666;
margin-top: auto;
margin-left: auto;
margin-right: auto;
margin-bottom: 5px;
padding: 5px;
background: #FF9;
line-height: 20px;
overflow: auto;
}
#m_cont span{
font-size: 10px;
color: #666;
padding-left: 10px;
}
#f_cont{
width: 600px;
border: 1px solid #333;
background: #eee;
margin: auto;
padding: 5px;
}
form div{
margin-bottom: 5px;
}
input{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
border-top: 1px solid #666;
border-left: 1px solid #666;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
vertical-align: bottom;
height: 20px;
line-height: 20px;
}
button{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
margin: 0px;
padding-top: 0px;
padding-bottom: 0px;
vertical-align: bottom;
height: 25px;
}
select,option{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
}
.from_me{
color: #F00;
}
</style>
</head>
<body>
<div id="m_cont"></div>
<div id="f_cont">
<form method="post" action="" onsubmit="return(send_msg())">
<div><% ="聊友["& Session.SessionID &"]" %></div>
<input type="text" size="76" maxlength="100" name="m_text" id="m_text" />
<button type="submit">发送消息</button><button type="button" onclick="clear_msg()">清屏</button>
</form>
</div>
<script type="text/javascript">
var my_name ='聊友[<% =Session.SessionID %>]';
function ajax(){
var arg_len =arguments.length;
var arg_type, arg_url, arg_post_data, arg_function;
arg_type =arguments[0];
arg_url =arguments[1];
if(arg_len >2){
    if(typeof(arguments[2]) =="string"){
     arg_post_data =arguments[2];
    }
}
var xhttp =window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
xhttp.open(arg_type, arg_url, true);
xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhttp.setRequestHeader("Cache-Control","no-cache");
xhttp.setRequestHeader("If-Modified-Since","0");
arg_function =arguments[arg_len -1];
xhttp.onreadystatechange = function (){
    if(xhttp.readyState ==4){
     if(xhttp.status ==200){
      if(typeof(arg_function) =="function")arg_function(xhttp.responseText);
     }else{
      alert("异常状态,错误代码("+ xhttp.status +")");
     }
    }
};
xhttp.send(arg_post_data);
}
function $(psId){
return document.getElementById(psId);
}
function send_msg(){
var s_text =$('m_text').value;
if(s_text ==""){
    alert("请输入要发送的聊天信息");
    $('m_text').focus();
    return false;
}
ajax('post', 'chat.asp', 'act=send&message='+ escape(s_text), function(psData){print_msg(psData);});
$('m_text').value ='';
$('m_text').focus();
return false;
}
function get_msg(){
ajax('get', 'chat.asp?act=get', function(psData){print_msg(psData);});
setTimeout('get_msg()', 2000);
}
function print_msg(psData){
if(psData){
    psData =unescape(psData);
    var s_item =psData.split(/\n/);
    for(var n=0;n <s_item.length; n++){
     s_item[n] =s_item[n].split('|');
     if(s_item[n][1] ==my_name){
      $('m_cont').innerHTML +='<div class="from_me">'+ s_item[n][1] +'说:'+ s_item[n][2] +'<span>'+ s_item[n][3] +'</span></div>';
     }else{
      $('m_cont').innerHTML +='<div>'+ s_item[n][1] +'说:'+ s_item[n][2] +'<span>'+ s_item[n][3] +'</span></div>';
     }
    }
}
$('m_cont').scrollTop = $('m_cont').scrollHeight;
}
function clear_msg(){
$('m_cont').innerHTML ='';
$('m_text').focus();
}
get_msg();
</script>
</body>
</html>
<% End Sub %>
原文地址:http://hi.baidu.com/heirui/blog/item/45894afb1e829d6a024f5660.html
2010年09月08日 05点09分 2
啊~哦~ 您要查看的页面不存在或已删除!楼主肿么破?[瀑布汗~]
2012年12月19日 04点12分
level 6
用迷你asp服务器吧 虽然没iis那么“正规” 但大部分代码没有问题 而且比iis简单多了 用起来比较方便
2010年09月08日 18点09分 4
level 1
需要把文件名存为chat.asp
2011年05月03日 01点05分 6
level 1
马克
2014年01月08日 00点01分 8
level 6
[真棒]
2014年01月08日 03点01分 9
level 11
老头进商店指着卫生带说:我要买口罩。女售货员说:这是卫生带。老头说:不卫生谁戴。女售货员继续解释到:这是月&经带!老头兴奋地大叫:越经戴越好!
2014年01月12日 19点01分 10
level 12
[玫瑰]
[玫瑰]
[玫瑰]
[玫瑰]
QQ:275101203 ASP PHP xHTML Javascript jQuery Div CSS
2014年01月14日 20点01分 11
level 11
没有你,我连饭都不想吃,你知道不?没有你,我的人生都没有意义,你知道不?为了想念你,我觉都睡不着,你知道不?我发错了,你知道不?
2014年01月19日 15点01分 12
level 12
<!--
This is HTML 4.01 Strict DTD, which excludes the presentation
attributes and elements that W3C expects to phase out as
support for style sheets matures. Authors should use the Strict
DTD when possible, but may use the Transitional DTD when support
for presentation attribute and elements is required.
HTML 4 includes mechanisms for style sheets, scripting,
embedding objects, improved support for right to left and mixed
direction text, and enhancements to forms for improved
accessibility for people with disabilities.
Draft: $Date: 1999/12/24 23:37:48 $
Authors:
Dave Raggett <[email protected]>
Arnaud Le Hors <[email protected]>
Ian Jacobs <[email protected]>
Further information about HTML 4.01 is available at:
http://www.w3.org/TR/1999/REC-html401-19991224
The HTML 4.01 specification includes additional
syntactic constraints that cannot be expressed within
the DTDs.
--
2014年01月22日 14点01分 15
level 11
  88、《六楼后座》:人生总有这么一个阶段,一个做什么也快乐的阶段,一个说什么也真诚的阶段。笑他们,皆因我们曾经荒唐过,爱他们皆因我们曾经甜蜜过。
2014年01月25日 20点01分 16
level 8
记哈
2014年01月25日 23点01分 17
level 11
丈夫:你看人家电视里那孩子咋那么懂事,那么聪明呢?儿子:你把我弄上电视我比他们都懂事。丈夫:……
2014年01月27日 18点01分 18
level 12
打造绿色ASP吧!给把有一个绿色干净的交流平台。
——吧务团队宣
本吧拒绝广告,打造绿色网络环境,人人有责。
       ——贴吧绿色守卫通道
    ——最美的不是下雨天,是曾与你躲过雨的屋檐。~
2014年01月29日 11点01分 19
level 1
老哥,你能百度云分享给我吗? 感谢老哥
2017年12月24日 12点12分 20
level 1
楼主在吗 留个联系方式
2017年12月27日 08点12分 21
1