这是一个限时秒杀的拍卖活动。时间只有15秒,活动一开始用户开始竟拍,竟拍成功后倒计时重新开始计时。又重新从15秒开始,期间不管还有多少秒,只要有其他用户竟拍成功时间就重新开始。直到时间等于0的时候活动才结束,东西就归最后竟拍成功的那个人。-----------------------------------忧伤的分割线-----------------------------------需求就这样,现在与到一个问题。就是时间不能同步、和页面刷新后时间就重新开始了。比如说:假定现在有三个人在线并同时参加这个活动。第一个人成功竟拍了,现在时间倒计时到3秒了,这时候又有一个人进来这个活动了,但是他进入页面的时候时间却是从15秒开始的。搞了半天没搞出来,明天老师就要收了,帮帮忙大家。先谢了。

解决方案 »

  1.   

    HTML部分: 
    <html xmlns="http://www.w3.org/1999/xhtml" > 
    <head runat="server"> 
    <title>无标题页</title> 
    <script type="text/javascript"> 
    function sessionTimeout() 

    var label=document.getElementById("lblTime"); 
    var seconds=parseInt(label.value); 
    seconds=seconds-1; 
    label.value=seconds.toString(); 
    if(seconds==0) 

    alert("您已超时"); 
    window.location.href="login.aspx";//转到登陆页 
    clearInterval(sessionTimeout); 


    window.setInterval(sessionTimeout,1000); 
    </script> 
    </head> 
    <body> 
    <form id="form1" runat="server"> 
    <div>剩余秒数: 
    <input ID="lblTime" name="lblTime" runat="server" type="text" style="border:0px;width:20px;" /> 
    <asp:Button ID="Button1" runat="server" Text="操作" /></div> 
    </form> 
    </body> 
    </html> 
    .CS文件部分: 
    protected void Page_Load(object sender, EventArgs e) 

    Session["time"] = System.DateTime.Now.ToString(); 
    Session.Timeout = 1; 
    lblTime.Value = Convert.ToString(Convert.ToInt32(Session.Timeout) * 60); 
    }
      

  2.   

    谢谢Lovely_baby的代码但我重新打开一个新页面或者是刷新页面都会从60开始。
      

  3.   

    按你这样说,倒计时是所有参与竞拍的用户共有了,说明真正的计时只能在服务器上,浏览器AJAX定时去读服务器上的计时数,把AJAX的定时时间设得比服务器上的计时间隔短一半以上,保证最大程度的读取有效数字。
    应该基本能同步,如果延时很历害,,当我没说。