ASP.NET/AJAX - 计时器不正确工作(ASP.NET/AJAX - Timer not

2019-10-21 06:22发布

我试图让您看到Ajax的倒计时器的web应用。 每当我按下按钮倒计时应该回到30并保持倒计时。

现在的问题是每当我按下按钮的计时器保持计时器不断30站立于不久后倒计时一秒钟或2的大部分时间。

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;         
}

希望有人知道问题是什么,是否有无论如何要解决这个问题。

提前致谢!

Answer 1:

因为计时器处理异步页,按钮点击事件发生时间处理的服务器上,定时器事件仍是起火的按钮单击事件之间,因此计时器保持计数回一两秒钟。 使用Java脚本标签尽快复位按钮被点击设置为30客户端。 当计时器click事件,递减标签值(不计时),并分配给标签的新值。 无需定时器int变量。 同样在页面加载,分配标签值仅在页面不回传(即的IsPostBack是假的),因为我们只希望在第一时间呈现页面加载标签值。 休息的时候,计时器click事件将分配值。



Answer 2:

问题是,Visual Studio中承载它在本地主机上。 如果您在URL中使用IP ADRESS 127.0.0.1而不是本地主机,它的工作速度快。 我想这会不会对速度更快的机器出现问题,sadfully我有没有在那个时候。

编辑:在这个问题上加入悬赏是一个错误,我们对此深感抱歉。



文章来源: ASP.NET/AJAX - Timer not working correct