首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP通知机制

ASP通知机制
EN

Stack Overflow用户
提问于 2013-12-20 22:15:59
回答 2查看 119关注 0票数 0

我正在创建一个网站,在那里人们可以添加对方作为朋友。

例如,我有两个用户:

代码语言:javascript
复制
User ONE with UserID = 1
User TWO with UserID = 2

User One添加User Two时,我将其写入数据库,并使用Integer跟踪状态:

0 = waiting 1 = accepted (are now friends)

如果拒绝->,我只是从数据库中删除该记录。

User One添加User Two时,我希望向User Two发送通知。

因此,User Two应该得到关于User One添加了他的通知,而无需刷新页面。

在添加某人作为朋友之后,我可以使用什么来创建通知呢?

我应该在数据库上寻找一种触发器,在添加了记录之后将一些东西发送到网站,还是有其他机制是你们推荐我的?

这是一个ASPX网站,没有MVC。

与我想要用于消息系统的机制相同。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-20 22:29:01

实现这一目标有三种方法,从最简单到最复杂:

  1. 轮询 编写一个javascript,每隔x分钟在站点上调用rest服务,并更新页面的DOM
  2. 长轮询 类似于轮询,但保持一个开放的连接,使即时回复,而不等待之间的投票。需要有一个api,该api可以在服务器上保持一个打开的连接池和一个后台线程,该线程轮询数据库中的更改,如果需要,它会将其渗出到javascript。
  3. Web套接字 将连接升级到完整的两种连接(websocket协议)。类似于长轮询服务器端。

正如您所看到的,除1之外的任何其他选项都相当复杂,但是您可以查看SingalR库来启动。

票数 1
EN

Stack Overflow用户

发布于 2013-12-20 22:18:51

您可以使用阿贾克斯轮询数据库进行此类更新,AJAX主要用于通过异步操作来避免表单提交。

下面是AJAX轮询的一个简单的jQuery示例:

代码语言:javascript
复制
function doPoll(){
    $.post('ajax/test.html', function(data) {
        alert(data);  // process results here
        setTimeout(doPoll,5000);
    });
}

此外,正如Brad评论的那样,您可以将“朋友”表“缓存”到内存中,并对其进行轮询,而不是对DB进行轮询--这样会快得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20712781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档