Asp.net 实现实时UI更新的最佳方法,如SO';s';新答案&x27;通知者?

Asp.net 实现实时UI更新的最佳方法,如SO';s';新答案&x27;通知者?,asp.net,ajax,user-interface,Asp.net,Ajax,User Interface,在web应用程序中提供实时UI更新的建议模式是什么?例如,在回答关于SO的问题时,另一个用户提交答案并出现提示。另外,如果站点中的每个页面都提供了此功能,那么如何避免服务器因太多AJAX调用而过载?我认为使用Comet实现此功能将是一种方法 有了Comet,当你有信息时,你可以在服务器上推送答案或任何信息,这样你就不会每次都从客户端请求信息 但tvanfosson和Josh让我注意到的一个缺点是,它会在客户端读取状态下长时间阻止HTTP连接。只需运行计时器,并通过XmlHttpRequest轮询

在web应用程序中提供实时UI更新的建议模式是什么?例如,在回答关于SO的问题时,另一个用户提交答案并出现提示。另外,如果站点中的每个页面都提供了此功能,那么如何避免服务器因太多AJAX调用而过载?

我认为使用Comet实现此功能将是一种方法

有了Comet,当你有信息时,你可以在服务器上推送答案或任何信息,这样你就不会每次都从客户端请求信息


但tvanfosson和Josh让我注意到的一个缺点是,它会在客户端读取状态下长时间阻止HTTP连接。

只需运行计时器,并通过
XmlHttpRequest
轮询服务器即可。这并不是说你需要即时更新;好吧,所以每隔30秒进行一次民意测验,但这对我来说太慢了,所以我编造了一个Greasemonkey脚本,每15秒检查一次。

事实上,我认为这不是一个特别好的主意。我看不出它的伸缩性如何,因为它依赖于保持一个可能长时间开放的连接。当连接数增加时,网络资源被使用而不是被释放,这会给您的web服务器带来压力。如果您只有少数用户,这很好。一个quad proc box只能支持400个并发用户……这个好主意对于大型用户来说并不实用,我认为这不会扩大太多。我们使用了这种方法,但是我们没有像这样的大量用户。