大哥,我知道啊,除AJAX会导致setInterval停顿,点一个耗时长的按钮也会导致setInterval停顿

解决方案 »

  1.   

    倒计时不建议用JS实现。
    如果用JS,那用setInterval,在执行时 当前时间和结束时间相减或者当前时间与开始时间比较的方式
      

  2.   


    哥们,如果不用JS,那只能用FLASH了,但我不会FLASH啊,不知道你有没有其它方法???
      

  3.   


    大哥,我知道啊,除AJAX会导致setInterval停顿,点一个耗时长的按钮也会导致setInterval停顿 我一直写满屏很多对象的动画 这个需要不断的setInterval执行很多脚本  但是从来没碰到过 setInterval明显的停顿你有什么方法会耗时这么久 分享出来看看
      

  4.   


    大哥,我知道啊,除AJAX会导致setInterval停顿,点一个耗时长的按钮也会导致setInterval停顿 我一直写满屏很多对象的动画 这个需要不断的setInterval执行很多脚本  但是从来没碰到过 setInterval明显的停顿你有什么方法会耗时这么久 分享出来看看 <!--倒计时js代码 -->   
       <script type="text/javascript" language="javascript">
       var  now  =  new  Date('<%=dd %>'); 
       
    function GetServerTime()
    {
    var urodz = new Date(document.getElementById("TextBox1").value);
    now.setTime(now.getTime()+250);
    days = (urodz - now) / 1000 / 60 / 60 / 24;
    daysRound = Math.floor(days);
    hours = (urodz - now) / 1000 / 60 / 60 - (24 * daysRound);
    hoursRound = Math.floor(hours);
    minutes = (urodz - now) / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
    minutesRound = Math.floor(minutes);
    seconds = (urodz - now) / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound);
    secondsRound = Math.round(seconds);
    document.getElementById("date").innerHTML = daysRound;
    document.getElementById("time").innerHTML = hoursRound + ":" + minutesRound + ":" + secondsRound;
    //这里判断倒计时的时间是否到来,以及要触发的一系列动作(可以调用后台的方法,不过好像必须是有返回值的方法)
    if(daysRound==0)
    {
    //后台的方法
       var i="<%=tan() %>";
    }
    }
    setInterval("GetServerTime()",250);
    </script>  
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
      <p><span id="date"></span><span class="white14b">天</span><span id="time"></span></p>
          
        </div>
        现在时间是<input type="text" id="nows" onfocus="aa()" />点我获取服务端时间&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        <asp:TextBox ID="TextBox1" runat="server">2015-01-10</asp:TextBox>    
        
        
        <iframe src="min.aspx" name="myiframe" id="myiframe" class="myiframe"></iframe>
        
        
        
        
        
        </form><body>
     
      <div class="main">
            <iframe src="min.aspx" name="myiframe" id="myiframe" class="myiframe"></iframe>
      
        </div>
     
    </body>
    min.aspx如下 <script type="text/javascript">
            function Getajax() {
                $.ajax({
                    url: "stop.aspx",
                    dataType: "html",
                    type: "GET",
                    contentType: "application/x-www-form-urlencoded; charset=utf-8",
                    cache: false,
                    async: false, //由于特殊要求,这个设置没法修改
                    success: function (data) {
                        //s = data.toString();
                        $("#gethtml").html(data);                }
                });        }       
            setInterval("Getajax()", 1000);
        </script>
    由于用的是 async: false ,所以要等myiframe内的AJAX请求完成之后,才会
      

  5.   

    url: "stop.aspx",你的页面就叫‘停止’很符合逻辑
      

  6.   

    setInterval 本来就不精确,用不用ajax都不精确。5楼是正解  用时间差来判断