在中断后立即在aspx页面上触发服务器端方法

时间:2012-04-28 05:54:04

标签: c# asp.net ajax


想象一下,我有一个aspx页面,它是我网站的主页,用户花时间在它上面。现在我需要在发生事件后,此页面变为更新。例如,如果新用户加入网站,则所有用户都会在其主页上看到该用户。 我使用ajax计时器来解决我的问题,每隔一秒调用一个方法,如果我的网站已被更改,我可以向用户显示。但这不是一个好的解决方案。请告诉我如何在中断之后立即触发方法,如上例所示。 (我认为当我们收到一些新的电子邮件时,雅虎邮件也会这样使用)

谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

你可以使当前线程“睡眠”,以便进行新的更改。每个Web请求都对应一个线程。并且您需要使用全局集合来跟踪所有当前正在睡眠的线程。

var lastMsgTime=Global.NewMsgTime;  
while(true){     
     Thread.Sleep(300);  
     if(!Response.IsClientConnected||RequeGlobal.NewMsgTime!=lastMsgTime){
          lastMsgTime!=Global.NewMsgTime;
          break;  
     }  
}   

你仍然会在客户端使用ajax。