2011-03-01 17 views
1

我有2个断开的部件 - 一个网站和一个后台进程。当用户提交一个长时间运行的请求时,它将被添加到数据库表中,该表进程将进行进一步处理并在表中设置一个位标志。后端如何通知用户界面? - ASP.NET

发生这种情况时,用户正在等待过程完成。我知道我可以每隔X秒轮询一次数据库以验证处理是否完成。这工作,但我想使这更高性能。

有没有办法让后端通知UI一个进程已经完成? PS:如果我需要使用MSMQ,我想我也可以做到这一点。我不确定在这种情况下是否有帮助。

回答

0

该网站需要通过ajax检查数据库(或者只是重新加载页面)。您不能将服务器连接到某个计算机并告诉它已完成。这将是一个巨大的安全问题。

如果您使用ajax来执行此操作,请求可能非常小,并且可能不会以明显的方式明智地影响您的应用程序性能。

+0

个人Ajax请求小。但是,如果您每隔几秒执行一次多个Ajax请求,并且同时使用该站点的用户数量为100,则会引起担心。 – Dusty 2011-03-02 14:18:58

+0

@Dusty,我想知道Facebook是如何做到的?我有一次使用了萤火虫,而我有一些聊天记录,并且发现它每隔几秒就会发送一次Ajax请求。 – 2011-03-02 16:57:30

0

这些天很酷的孩子正在使用HTTP Streaming创建这些频道。这可能是你的情况矫枉过正,一个快速和容易的Ajax请求可能会让你在那里。