【发布时间】:2014-03-16 10:38:08
【问题描述】:
stack over site 有很好的通知系统。当我们发布任何问题并坚持到该页面时,同时如果有人给出答案或发表任何评论或编辑我的问题或其他问题,那么我们点击并加载数据的地方就会出现一条通知消息。
这是图片
1)这种通知可以由signalR开发
2) 我们可以编写 JQuery 函数,该函数将在后台运行每个部分并访问服务器以检查问题是否有任何答案或检查是否存在任何现有问题更改或检查是否有任何 cmets 等(如果有)找到活动,然后在页面上显示一条消息,请求用户加载更改。
但我不知道堆栈溢出是如何开发这个通知系统的? 所以我正在寻找为任何网站开发类似通知系统的最佳指导。
谢谢
编辑
public class ChatHub : Hub
{
public void Send(string name, string message)
{
Clients.All.sendMessage(name,message);
}
}
code in global.asax
protected void Application_Start(object sender,EventArgs e)
{
RouteTable.Routes.MapHubs();
}
client code
<script src="http://code.jquery.com/jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.signalR-1.0.1.min.js" type="text/javascript"></script>
<script src="signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
// Proxy created on the fly
var chat = $.connection.chatHub;
// Get the user name and store it to prepend to messages.
$('#displayname').val(prompt('Enter your name:', ''));
// Declare a function on the chat hub so the server can invoke it
chat.client.sendMessage = function (name, message) {
var encodedName = $('<div />').text(name).html();
var encodedMsg = $('<div />').text(message).html();
$('#messages').append('<li>' + encodedName +
': ' + encodedMsg + '</li>');
};
// Start the connection
$.connection.hub.start().done(function () {
$("#send").click(function () {
// Call the chat method on the server
chat.server.send($('#displayname').val(), $('#msg').val());
});
});
});
</script>
嗨@Anders 感谢您的指导,您要求我使用您的库,但是当我转到该页面时,我发现没有可靠的代码需要放入我的页面中。通常,当我们使用 signalr 时,我们编写了上面的代码。一侧是集线器,另一侧是客户端,但我不明白我需要编写什么来实现您的代码,而且我想知道您的代码还将提供什么。
所以请详细指导我。谢谢
【问题讨论】:
-
每秒运行 jquery 来访问服务器并不是每个部分的好主意。
-
所以请详细指导我什么是最好的方法?
标签: jquery asp.net-mvc-3 notifications signalr