我有一些作为后台作业运行的进程,允许用户在作业完成时(可能需要几分钟)继续使用页面,我想显示消息对用户来说,显示这个最好的地方是主页面AFAIK(当他们在网站上页面间移动时),所以我在主页面文件中定义了一个div。在ASP主页中使用AJAX刷新数据
我想找到显示数据的最佳方法,此刻我有一个方法在masterpage vb文件中轮询数据库以查看作业(涉及复杂逻辑和某些db访问)是否已完成,如果有,它会在div中显示一条消息“Job 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
有没有办法,只刷新与更新消息的股利,不完全刷新使用此代码发生?或者如果这是不可能的,是否有任何方法使用jQuery复制上述函数,并且只有在作业完成后才能更新DIV文本?
你提到的ASP母版,但你标记'ASP.NET',这是一个'ASP.NET我们bforms'项目? – balexandre 2012-01-16 16:40:58
嗨,是的,这是一个基于web.net的webforms项目。 – norbert 2012-01-16 18:27:32