1

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

我接到了商务人士的任务。我不知道术语。它与电子邮件通知、Facebook 上的消息通知、社交媒体游戏上的通知非常相似。

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

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

我有点知道如何在外观上做到这一点(在 CSS 上)。如何使用 javascript/asp.net 进行操作。我是否需要回发才能刷新消息。我从不关注 facebook/yahoo 电子邮件/社交媒体游戏。我所知道的是正在发生一些事情,网页正在更新状态。

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

电子邮件信息的数量

4

2 回答 2

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()在服务器端写入什么内容,都将显示在此处。现在要不断检查新消息,您可以在以下帮助下调用上述 ajax 函数setInterval()

于 2015-06-10T21:19:40.377 回答
0

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

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

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

于 2015-06-10T21:24:48.560 回答