我会尽力解释我的问题,以避免让人指向不同的方向。
我接到了商界人士的任务。我不懂术语。它非常类似于电子邮件通知,Facebook上的消息通知,社交媒体游戏的通知。
例如,人们在5分钟前发送了20封电子邮件。屏幕将显示20(见附件)。现在,已经有3条消息到达,网页应该将数字更新为23。
当我们的朋友喜欢/评论消息时,Facebook有类似的概念。通知发生变化。社交媒体游戏也是如此。我们的游戏状态发生了任何变化,它会反映出来。我对如何在美容上(在CSS上)有所了解。如何使用javascript / asp.net做到这一点。我是否需要回发才能刷新消息。在facebook / yahoo电子邮件/社交媒体游戏中,我从不关注这一点。据我所知,网页正在更新状态。
抱歉这个问题太宽泛了。如果有人可以帮助我指出正确的方向,我感谢任何帮助
答案 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()
答案 1 :(得分:0)
有很多方法可以做到这一点,具体取决于您需要的实时时间。
最常见的方法是使用JavaScript
和XmlHttpRequest
来调用ASP.NET
页面,该页面会返回消息数量,我建议您使用JSON
对象这个。此方法的好处是允许您从服务器请求数据,而无需用户进行整页刷新。您可以使用JavaScript将其设置为每x秒调用一次,具体取决于您的要求。
统称为AJAX
,使用JQuery
之类的JavaScript库可以使这更容易。