使用javascript或asp.net动态显示消息编号

时间:2015-06-10 21:10:47

标签: javascript asp.net social-media email-notifications

我会尽力解释我的问题,以避免让人指向不同的方向。

我接到了商界人士的任务。我不懂术语。它非常类似于电子邮件通知,Facebook上的消息通知,社交媒体游戏的通知。

例如,人们在5分钟前发送了20封电子邮件。屏幕将显示20(见附件)。现在,已经有3条消息到达,网页应该将数字更新为23。

当我们的朋友喜欢/评论消息时,Facebook有类似的概念。通知发生变化。社交媒体游戏也是如此。我们的游戏状态发生了任何变化,它会反映出来。

我对如何在美容上(在CSS上)有所了解。如何使用javascript / asp.net做到这一点。我是否需要回发才能刷新消息。在facebook / yahoo电子邮件/社交媒体游戏中,我从不关注这一点。据我所知,网页正在更新状态。

抱歉这个问题太宽泛了。如果有人可以帮助我指出正确的方向,我感谢任何帮助

number of email message

2 个答案:

答案 0 :(得分:1)

HTML5引入了一个非常有趣的概念,称为服务器发送事件,服务器可以动态连接到客户端并发送数据。

例如:

var source = new EventSource("demo_sse.asp");
source.onmessage = function(event) {
    document.getElementById("result").innerHTML = event.data + "<br>";
};

在服务器端你可以写,

<%
    Response.ContentType = "text/event-stream"
    Response.Expires = -1
    <!--Writing "data:" is important-->
    Response.Write("data: The server time is: " & now())
    Response.Flush()
%>

但是,某些旧浏览器可能不支持此功能。

完成此任务的另一种方法是使用Ajax调用,

function checkNewMessages(totalMessages){
return $.ajax({
    url: 'demo.asp',
    type: 'GET',
    cache: false,
    data: {
       totalMessages: totalMessage;
    }
});

}

checkNewMessages(totalMessages).success(function (data) {
    // display the data wherever you want
});

    //Checking for new messages every 5 seconds
    setInterval(checkNewMessages(totalMessages,5000));

您在服务器端的Write()内写的内容将显示在此处。现在要不断检查新消息,你可以在setInterval()

的帮助下调用上面的ajax函数

答案 1 :(得分:0)

有很多方法可以做到这一点,具体取决于您需要的实时时间。

最常见的方法是使用JavaScriptXmlHttpRequest来调用ASP.NET页面,该页面会返回消息数量,我建议您使用JSON对象这个。此方法的好处是允许您从服务器请求数据,而无需用户进行整页刷新。您可以使用JavaScript将其设置为每x秒调用一次,具体取决于您的要求。

统称为AJAX,使用JQuery之类的JavaScript库可以使这更容易。