AJAX - ASP.NET - 定时器延迟问题

时间:2010-04-23 07:58:38

标签: c# asp.net ajax timer

我正在尝试创建一个Web应用程序,您可以在其中看到Ajax倒数计时器。每当我按下一个按钮时,倒计时应该回到30并继续倒计时。

现在的问题是每当我按下按钮时,计时器会继续倒计时一秒钟或2秒钟,大部分时间后计时器会长时间保持30秒。

WebForm代码:                    

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Label ID="Label1" runat="server" Text="geen verbinding"></asp:Label>
        <br />
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
        <br />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
    </Triggers>
</asp:UpdatePanel>
<asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">
</asp:Timer>

</form>

代码背后:

static int timer = 30;
protected void Page_Load(object sender, EventArgs e)
{
    Label1.Text = timer.ToString();
}
protected void Timer1_Tick(object sender, EventArgs e)
{
    timer--;

}
protected void Button1_Click(object sender, EventArgs e)
{
    timer = 30;         
}

希望有人知道问题是什么,以及是否还有解决方法。

提前致谢!

1 个答案:

答案 0 :(得分:1)

为什么不在ClientSide上完全实现Timer?你能解释为什么它必须是一个回调吗?它需要在服务器上做什么?

<script type="text/javascript" language="javascript">
var timer = 0;
function resetTimer() {
    timer = 0;
    timerTick();
}
function timerTick() {
    var target = document.getElementById("timerResult");

    target.innerHTML = timer++;
    window.setTimeout("timerTick()", 1000);
}
</script>

在身体标签......

<body onload="timerTick();">

在某处展示

<div id="timerResult" >timerResult</div>

你只需要添加一个按钮chich调用resetTimer()。我会把它留给你