>  Q&A  >  본문

내 코드의 어디에 문제가 있는지 알아내도록 도와주세요.

Ajax가 마지막 2초에 도달할 때마다 요청을 시작하고 카운트다운이 중단됩니다. 논리적으로 말하면 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>


按键盘手指磨破皮按键盘手指磨破皮2479일 전1419

모든 응답(2)나는 대답할 것이다

  • aaa

    aaa2018-04-19 20:50:28

    사용하기 전에 타이머를 지우세요

    회신하다
    0
  • 电动小老虎

    电动小老虎2017-12-17 00:20:47

    전화할 때 먼저 마지막 데이터를 삭제하세요

    회신하다
    0
  • 취소회신하다