【发布时间】:2012-01-16 15:30:42
【问题描述】:
我有一些作为后台作业运行的进程,允许用户继续使用页面,当作业完成时(可能需要几分钟)我想向用户显示一条消息,这是最好的地方显示这将是主页面AFAIK(以防他们在网站上从一个页面移动到另一个页面)所以我在主页面文件中定义了一个div。
我正在尝试找到显示数据的最佳方法,目前我在 masterpage vb 文件中有一个方法可以轮询数据库以查看作业(涉及复杂逻辑和一些数据库访问)是否已完成,如果有,它会在 div 中显示一条消息,例如“作业 13132 已完成” - 工作正常。
问题是这不是动态的,我必须刷新页面才能调用检查进程是否完成的函数,我如何使用 AJAX 每 5 秒自动传送此内容?
我曾尝试使用 5 秒滴答时间的 asp 计时器,但整个页面每 5 秒刷新一次计时器点击事件。
Protected Sub Timer1_Tick(Byval sender as Object, Byval e As EventArgs)
poll_results()
End Sub
Public Sub poll_results()
'database access logic
If dbtable.isCompleted = True
Dim sb As New StringBuilder()
sb.Append("$('#status').html('Job abc123 is complete');")
Page.ClientScript.RegisterStartupScript(GetType(Page), "myscript", sb.ToString(), True)
End If
End Sub
有没有办法只使用更新的消息刷新 div,而不使用此代码进行完全刷新?或者如果这不可能,有没有办法使用 jQuery 复制上述函数,并且只有在作业完成后才能更新 DIV 文本?
【问题讨论】:
-
您提到了 ASP Masterpage,但您标记了
ASP.NET,这是一个ASP.NET Webforms项目吗? -
嗨,是的,这是一个基于 asp.net webforms 的项目。
标签: asp.net ajax vb.net webforms