zoukankan      html  css  js  c++  java
  • 模拟新浪新闻在线聊天功能

    前几天看到新浪新闻出现了一个新东西:看同一条新闻的人可以在页面上的一个聊天块中进行聊天。

    聊天的程序功能不是什么新鲜事,不过新浪的这个看同一条新闻的人聊天的这个还蛮有意思。

    关键的地方就是根据不同的新闻将浏览的用户分开,用户可以和另外的看同一条新闻的人聊天,感觉让用户之间的交流更及时紧密。

    我采用asp.net 和 ajax.net模拟了一个类似的功能,还有不完善的地方,例如:自动的更新数据、文本域自动滚动、以及一些外观和功能上的东西 都还没做。另外,功能虽然和新浪的差不多,但是不知道所采用的思路是否相同以及存储方式,数据维护方式等。

    页面:
    ==============================================================

    <%@ Page language="c#" Codebehind="chat.aspx.cs" AutoEventWireup="false" Inherits="Ajax.chat1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>chat</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    <script language="javascript">
    <!--
    function add()
    {
    //将用户聊天姓名和聊天内容组合成字符串 并赋给str
    var str=document.all.username.value;
    str+=":";
    str+=document.all.str.value;

    var arg=document.location.href.split('?')[1]; //将用户请求的URL的参数部分分离出来并赋给arg变量

    var nowstr = Ajax.chat1.Add(str,arg); //str参数为提交聊天信息的人的姓名和聊天内容组合后的字符串,arg为当前页面的URL参数部分字符串

    document.all.strs.value=nowstr.value; //获取AJAX.NET调用的方法所返回的数据,该数据是APPLICATION所记录的聊天内容
    }
    //-->
    </script>
    </HEAD>
    <body>
    <form id="Form1" method="post" runat="server">
    <TEXTAREA id="strs" style="WIDTH: 696px; HEIGHT: 184px" rows="11" cols="84" runat="server">
    </TEXTAREA><BR>
    <INPUT id="username" style="WIDTH: 88px; HEIGHT: 22px" type="text" size="9"><INPUT id="str" type="text"><INPUT type="button" value="Button" onclick="add();">
    </form>
    </body>
    </HTML>

    代码:
    ========================================================================

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
     
    namespace Ajax
    {
         ///<summary>
         /// chat1 的摘要说明。
         ///</summary>
         public class chat1 : System.Web.UI.Page
         {
             protected System.Web.UI.HtmlControls.HtmlInputText arg;
             protected System.Web.UI.HtmlControls.HtmlTextArea strs;
        
             private void Page_Load(object sender, System.EventArgs e)
             {
                  // 在此处放置用户代码以初始化页面
     
                  //初始化AJAX
                  AjaxPro.Utility.RegisterTypeForAjax(typeof(chat1));
     
                  //获得用户请求的参数部分的字符串
                  string arg = Request.Url.ToString().Split('?')[1];
     
                  //初试文本域内内容为APPLICATION集合中相应项已存储的数据
                  strs.Value=(Application[arg]+"").ToString();
             }
     
            
             [AjaxPro.AjaxMethod]
             public string Add(string str,string arg)
             {
                  //加入用户提交的聊天信息
                  HttpContext.Current.Application[arg]+=str+"/n";
     
                  //返回APPLICATION集合中相应项已存储的数据
                  return (string)HttpContext.Current.Application[arg];
             }
            
     
             #region Web 窗体设计器生成的代码
             override protected void OnInit(EventArgs e)
             {
                  //
                  // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
                  //
                  InitializeComponent();
                  base.OnInit(e);
             }
            
             ///<summary>
             ///设计器支持所需的方法 - 不要使用代码编辑器修改
             ///此方法的内容。
             ///</summary>
             private void InitializeComponent()
             {   
                  this.Load += new System.EventHandler(this.Page_Load);
     
             }
             #endregion
         }
    }
     
    相关AJAX.NET的信息请看   我的BLOG中的“AJAX.NET初体验”一文
  • 相关阅读:
    SSL JudgeOnline 1194——最佳乘车
    SSL JudgeOnline 1457——翻币问题
    SSL JudgeOnlie 2324——细胞问题
    SSL JudgeOnline 1456——骑士旅行
    SSL JudgeOnline 1455——电子老鼠闯迷宫
    SSL JudgeOnline 2253——新型计算器
    SSL JudgeOnline 1198——求逆序对数
    SSL JudgeOnline 1099——USACO 1.4 母亲的牛奶
    SSL JudgeOnline 1668——小车载人问题
    SSL JudgeOnline 1089——USACO 1.2 方块转换
  • 原文地址:https://www.cnblogs.com/ZetaChow/p/2237428.html
Copyright © 2011-2022 走看看