如何从另一个线程在当前的ASP.Net aspx页面上运行JS脚本?

时间:2017-12-02 06:36:25

标签: c# asp.net

我正在运行一个检查新数据是否可用的线程。当新数据可用时,我想简单地运行JS警报,即alert("new data")以在当前访问的页面上显示弹出消息。


我尝试了以下(在第二个线程中运行此代码):

//...
if(dataIsAvailable)
{
  //...
  HttpContext.Current.Response.Write("<script>alert('new data')</script>");
}
//...




但是由于以下原因我得到了例外:

  

System.Web.HttpContext.Current.**get** returned null.




如何在另一个线程中从该页面外部运行当前页面上的JS脚本?


谢谢

1 个答案:

答案 0 :(得分:0)

这是不可能的。

您尝试执行的操作是向页面发送一些消息,但此线程上不再存在与该页面的连接 - 因此System.Web.HttpContext.Current为空

映像...客户端要求页面,服务器发送此页面,客户端呈现它并关闭连接,没有更多要获取,没有更多要呈现。现在在服务器端运行一个线程,你有一些结果......但是没有输出发送它们。

也许你可以找到带有ajax调用的解决方案 - 或者只是删除线程并等待完成它。