很多的sns网站都提供了短消息功能。而且,如果我们在线的话会很快的收到好友的短消息。
这里介绍一种客户端的方法,简单实现。
主要的表:
user
:Uid UName Password 三个字段
Message
:Mid, SenderId, ReceiverId, State, Detail(SenderId和 ReceiverId)都是外键且对应user表中的Uid。
主要的思路很简单:用js每隔五秒钟发送一次ajax请求,获取当前用户在Message表中State为未读取(这里约定为数字1)且ReceverId为当前用户ID的Message 记录的数量。
页面的代码:
<%@ Page Language="C#" CodeBehind="Default.aspx.cs" Inherits="MIDemo._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<!-- 两个js脚本文件-->
<script type="text/javascript" src="SqlHelp/jquery-1.3.2.js"></script>
<script type="text/javascript" src="SqlHelp/GetMessageCount.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div style=" border-color:Green; border-style:solid; margin-top:100px; margin-left:300px; width:300px; height:50px; text-align:center;">
您有<input type="text" value="0" id="messageCount"/><a href="ShowMessage.aspx">条短消息</a>
</div>
</form>
</body>
</html>
js代码:这里用到了Jquery框架,不再赘述,网上有很多的资料。
GetMessageCount.js
//------GetMessageCount.js Begin----------------------
if(!GetMessageCount){
var GetMessageCount = {};
}
$(document).ready(
function(){
GetMessageCount.FindMessage();
}
);
GetMessageCount.FindMessage = function(){
$.ajax({
//处理ajax请求
url:'FindNewMessage.ashx',
// 当前用户的ID,这里图省事就省略了,直接写死为 1,
//实际使用过程中可以从session中获取 。。。。
data:{Uid:1},
cache: false,
//回调函数返回未读短信数目
success: function(response)
{
$('#messageCount').val(response);
},
error:function(data)
{
alert("加载失败");
}
});
//每隔5 秒递归调用一次,刷新未读短信数目
window.setTimeout(GetMessageCount.FindMessage,5000);核心语句
}
//------GetMessageCount.js End----------------------
到了这里,贴出处理ajax请求页面的代码,非常简单
FindNewMessage.ashx
//----------------'FindNewMessage.ashx Begin
using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
namespace MIDemo
{
/// <summary>
/// $codebehindclassname$ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class FindNewMessage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//就这一句代码,获取未读短信的数量,返回页面
//后台的sql代码就省略了
int count = SqlHelp.SqlHelp.GetUnreadMessageCount(Convert.ToInt32(context.Request["Uid"]));
//返回页面
context.Response.Write(count);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
//----------------'FindNewMessage.ashx End
分享到:
相关推荐
Asp.Net基于Ajax的无刷新聊天室,可以带来以下两点好处: ·页面实时更新,无需完全刷新页面; ·聊天内容更新时,只需要读取最新的聊天信息,做到“按需取数据”。 本项目将会实现以个基于Ajax的无刷新聊天室,其...
在ASP.NET中,我们可以使用Microsoft的AJAX Control Toolkit或者jQuery AJAX库来实现这一目标。 在用户注册实例中,通常包括以下几个关键步骤: 1. **前端设计**:使用HTML和CSS创建注册表单,包括用户名、密码、...
首先,ASP.NET是由微软开发的一种用于构建动态Web应用程序的框架,它基于.NET Framework,提供了丰富的服务器控件、内置的安全性和易于管理的结构。在ASP.NET中,我们可以通过C#或VB.NET等编程语言编写后端逻辑。 ...
聊天室的实现可能基于ASP.NET中的Web Forms架构,利用控件如TextBox和Button来接收和发送消息,同时利用PostBack机制更新页面内容。 AJAX的核心在于JavaScript和XMLHttpRequest对象,它允许在不重新加载整个网页的...
本书从易到难、由浅入深、循序渐进系统地介绍了ASP.NET AJAX(C#)知识点和基于AJAX的Web应用系统的开发技术。全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。 本书共分为15...
**ASP.NET 基于 AJAX 技术的邮件系统** ASP.NET 是 Microsoft 推出的一种用于构建动态 web 应用程序的技术,它结合了 .NET Framework 的强大功能和易用性,使得开发者能够高效地创建功能丰富的 web 应用。在 ASP...
本项目“Asp.net+Ajax做的无刷新聊天室”充分利用了两者的优势,实现了用户实时聊天和在线用户列表展示的功能,无需页面刷新。 1. **Ajax的核心原理** Ajax的核心在于创建XMLHttpRequest对象,通过这个对象与...
在这个"ASP.NET2.0 Ajax组件DEMO"中,我们重点关注的是使用Ajax技术来提升用户体验的部分。Ajax,即Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,它可以实现...
在描述中提到的,如评分功能、无刷新验证用户名以及ajax级联菜单等,都是ASP.NET AJAX控件实现的典型应用场景。 评分功能通常通过AJAX实现无刷新的星评系统,用户可以无需等待整个页面刷新即可完成评分,并实时显示...
在本项目中,"ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现",开发者利用了ASP.NET的强大功能,结合Ajax的异步处理技术和Lucene的全文检索能力,设计并实现了高效、用户友好的搜索引擎。 Ajax(Asynchronous ...
最近做的一个课程设计,是一个基于WEB的聊天程序,利用asp.net ajax1.0控制,来实现局部无刷新。可以包括注册、登录、获取密码(以邮件形式发送新密码)、无刷新显示好友列表、好友在线状态、聊天信息、发送信息、...
在本项目中,"C# ASP.NET - Ajax 美丽星空许愿墙"是一个结合了C#编程语言、ASP.NET框架以及Ajax技术的Web应用示例,旨在创建一个交互式的用户界面,模拟美丽的星空背景,并允许用户提交许愿信息。下面将详细解释这些...
本项目“ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现”是一个典型的结合了ASP.NET技术、Ajax异步处理以及Lucene全文检索引擎的实践案例,适用于计算机毕业设计。 1. ASP.NET基础: ASP.NET框架提供了一种模型-...
在本项目"C# ASP.NET - AJAX验证会员注册信息"中,我们主要探讨的是如何利用C#后端语言和ASP.NET框架结合AJAX技术,实现在不刷新整个网页的情况下,动态验证用户在注册过程中的输入信息。这个技术在现代Web开发中...
在这个项目中,"ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现",我们将深入探讨如何利用这两种技术来构建一个高效的网页搜索系统。 Ajax(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况...
【Asp.Net Ajax无刷新聊天室】是一种基于Asp.Net技术构建的实时交流平台,它利用Ajax(异步JavaScript和XML)技术实现了页面的无刷新更新,为用户提供流畅的交互体验。这种聊天室的设计旨在提高用户体验,使得用户在...
本项目"ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现_project"旨在提供一种解决方案,利用现代Web技术和开源全文搜索引擎库来创建用户友好的搜索体验。 首先,ASP.NET是Microsoft开发的一个用于构建动态Web应用...
在本项目中,“ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现”展示了如何结合这两种技术来构建一个高效、响应迅速的搜索功能。 Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个网页的情况下更新...
在"ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现"项目中,可能包含以下几个关键部分: 1. **索引创建**:使用Lucene创建一个索引,将需要搜索的数据(例如网页内容、文章、产品描述等)转化为可搜索的格式。这...