請大神幫忙看看我這代碼問題在哪裡
按键盘手指磨破皮
按键盘手指磨破皮 2017-12-09 12:36:16
0
2
1489

每次到最後2秒的ajax就開始請求然後倒數計時就會卡住照理說我設定的10秒請求一次而計時器是1秒1秒的倒數計時為什麼會走了8秒就開始請求了呢?因為我需要每10秒同步下伺服器時間。請大神幫忙看看問題在哪 怎麼修改

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="../js/jquery.min.js"></script>
<style type="text/css">
</style>
<script type="text/javascript">
time = null
function timedCount()
{
t = 10;
$.ajax({
type : 'get',
url : 'ssc_cq.php',
dataType : 'json',
success : function(a){
// var t = a.time.substr(a.time.length-2);
// var m = a.time.charAt(a.time.length -4);
// var e =  parseInt(m*60) + parseInt(t);
// time = parseInt(600) - parseInt(e);
var intDiff = parseInt(t);
time = timer(intDiff);
}
});
//在重新开启一个计时器之前关闭已经开启的计时器
setTimeout("timedCount()",10000);
if (time) {
        clearInterval(time);
}
}
//倒计时总秒数量
function timer(intDiff) {
  var time = window.setInterval(
      function () {
    var day = 0,
      hour = 0,
      minute = 0,
      second = 0; //时间默认值
    if (intDiff > 0) {
      day = Math.floor(intDiff / (60 * 60 * 24));
      hour = Math.floor(intDiff / (60 * 60)) - (day * 24);
      minute = Math.floor(intDiff / 60) - (day * 24 * 60) - (hour * 60);
      second = Math.floor(intDiff) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
    }
    if (minute <= 9) minute = '0' + minute;
    if (second <= 9) second = '0' + second;
    $('#day_show').html(day + "天");
    $('#hour_show').html('<s id="h"></s>' + hour + '时');
    $('#minute_show').html('<s></s>' + minute + '分');
    $('#second_show').html('<s></s>' + second + '秒');
    intDiff--;
    if(minute == 0 && second == 0){
     time2(3)
     if(time2 == 0){
     location.reload();
     }
    }
  },1000);
  return time;
}
$(function () {
  timedCount()
});
function time2(sj){

var t = window.setInterval(
function(){
var m = 0,
s = 0;
if (sj > 0){
m = Math.floor(sj / 60);
s = Math.floor(sj) - (m * 60);
}
if (m <= 9) m = '0' + m;
    if (s <= 9) s = '0' + s;
    $('#minute_show1').html('<s></s>' + m + '分');
    $('#second_show1').html('<s></s>' + s + '秒');
    sj--;
},1000);
return t;
}
</script>
</head>
<body>
<span id="day_show"></span>
<span id="hour_show"></span>
<span id="minute_show"></span>
<span id="second_show"></span>
<br>
<span id="minute_show1"></span>
<span id="second_show1"></span>
</body>
</html>


按键盘手指磨破皮
按键盘手指磨破皮

全部回覆(2)
aaa

用定時器之前先清除定時器

电动小老虎

呼叫的時候 先清除一下 上次的資料

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板