当前位置: 代码迷 >> ASP.NET >> 请教一个Timer有关问题,为什么小弟我的这个没效果,看代码
  详细解决方案

请教一个Timer有关问题,为什么小弟我的这个没效果,看代码

热度:2077   发布时间:2013-02-25 00:00:00.0
请问一个Timer问题,为什么我的这个没效果,看代码
VB.NET code
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load            lblResult.Text = DateTime.Now.ToString()            Dim timer As System.Timers.Timer = New System.Timers.Timer            timer.Interval = 1000            AddHandler timer.Elapsed, AddressOf OnTimeEvent            timer.Enabled = True        End IfEnd Sub    Private Sub OnTimeEvent(ByVal source As Object, ByVal e As System.Timers.ElapsedEventArgs)        lblResult.Text = DateTime.Now.ToString()    End Sub


为什么aspx上的lblResult没有变化.不会一秒一秒的往前跳??

------解决方案--------------------------------------------------------
你是在Page_Load里面定义的一个局部的timer,当过程结束的时候,你的timer就释放了。所以就不会再起作用了。你可以定义一个全局的timer。或者在页面上拖一个全局的timer。
------解决方案--------------------------------------------------------
aspx中timer的定时功能一般是用在global.asax 中的 Application_OnStart 事件过程中定义计时器,定时执行某件任务

如果你是页面中即使用了timer,进行事件响应的时候因为服务器端事件,造成整个页面刷新,定时器没有任何意义,
要在页面定时,可以使用javascript的
window.setTimeout或者setInteval来实现效果要好

如:
<div id="result"></div>
<script>
var value="1";
function usertimer()
{
document.getElementById("result").innerHTML="当前值为"+value;
value=value+1;
if(value<100)
{
window.setTimeout("usertimer()",1000);间隔一秒钟调用该函数
}

}
</script>
  相关解决方案