none
Problemas con timer al redireccionar a una pagina RRS feed

  • Pregunta

  • Tengo un  timer donde le asigno una cantidad de segundos para que pueda contar hacia abajo hasta el 0, la funcion del timer la hago mediante codigo javascript, con el objetivo de que cuando se termine el tiempo del timer mediante codigo vb.net  hago que redireccione a otra pagina. El problema es que cuando ejecuto el timer , empieza a descender pero despues de 2 segundos se redirecciona a otra pagina sin terminar de contar descendentemente.

    codigo javascript:

    <asp:ScriptManager ID= "SM1" runat="server"></asp:ScriptManager>
    <asp:Timer ID="timer1" runat="server" 
    Interval="1000" OnTick="timer1_tick"></asp:Timer>
    </div>
      
    <div>
    <asp:UpdatePanel id="updPnl" 
    runat="server" UpdateMode="Conditional">
    <ContentTemplate>
    
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="timer1" EventName ="tick" />
    </Triggers>
    </asp:UpdatePanel>
    </div> 
                
       <div>
                   <asp:Label ID="timelabel" runat="server" Text="Label"></asp:Label></div>
     <script type="text/javascript">
    
    var leave =<%=seconds %>;
    
    
    CounterTimer();
    var interv=setInterval(CounterTimer,1000);
    
    
    function CounterTimer()
    {
    var day = Math.floor(leave / ( 60 * 60 * 24))
    var hour = Math.floor(leave / 3600) - (day * 24)
    var minute = Math.floor(leave / 60) - (day * 24 *60) - (hour * 60)
    var second = Math.floor(leave) - (day * 24 *60*60) - (hour * 60 * 60) - (minute*60)
    
    
    hour=hour<10 ? "0" + hour : hour;
    minute=minute<10 ? "0" + minute : minute;
    second=second<10 ? "0" + second : second;
    
    
    var remain=hour + ":"+minute+":"+second;
    leave=leave-1;
    
    document.getElementById("timelabel").innerText=remain;
    
    }
    </script>

    codigo vb.net

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
            seconds = 120
    
            If Not SM1.IsInAsyncPostBack Then
                Session("timeout") = DateTime.Now.AddMinutes(seconds).ToString
            End If
    
    
        End Sub
    
        Protected Sub timer1_tick(sender As Object, e As EventArgs) Handles timer1.Tick
            If 0 > DateTime.Compare(DateTime.Now, DateTime.Parse(Session("timeout").ToString())) Then
                timelabel.Text = "Number of Minutes Left: " + CType(DateTime.Parse(Session("timeout").ToString()).Subtract(DateTime.Now).TotalMinutes, Int32).ToString()
                Response.Redirect("~/Entrevista.aspx")
            End If
        End Sub


    • Editado fredsale miércoles, 27 de mayo de 2015 16:03
    miércoles, 27 de mayo de 2015 16:01

Respuestas