2011-04-14 5 views
2

나는 setinterval로 매초 함수를 실행하는 jQuery 스크립트를 가지고있다. 하지만 30 분 후에 스크립트를 죽이면 시간 제한을 설정하려고합니다. 어떻게해야합니까? 감사합니다 :)30 초 후에 매초마다 실행하도록 설정된 jquery 스크립트를 어떻게 시간 초과합니까?

소스 코드 :

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/ 
libs/jquery/1.3.0/jquery.min.js"></script> 

<script type="text/javascript"> 
$(function() { 
    setInterval(oneSecondFunction, 1000); 
}); 

function oneSecondFunction() { 
    //var ID = $(this).attr("id"); 
    var ID = '1'; 
    if(ID){ 
     $("#more"+ID).html('<img src="moreajax.gif" />'); 
     $.ajax({ 
      type: "POST", 
      url: "ajax_more.php", 
      data: "lastmsg="+ ID, 
      cache: false, 
      success: function(html){ 
       $("ol#updates").prepend(html); 
       $("#more"+ID).remove(); 
      } 
     }) 
    } 
    return false; 
} 
</script> 
<style> 

답변

5

사용이 패턴 :

var timer = null; 

$(function() { 
    timer = setInterval(oneSecondFunction, 1000); 
    setTimeout(function() { clearInterval(timer); }, 30*60*1000); 
}); 
2

당신은이 작업을 수행 할 수 있습니다

<script type="text/javascript"> 
$(function() { 
    var interval= setInterval(oneSecondFunction, 1000); 
    setTimeout(function(){clearInterval(interval)}, 18000000); //half an hour 
}); 
... 
</script> 
<style> 
3

저장이 생성 타이머 당신이 setInvterval을 수행 할 때와 30 분 후에 간격을 지우십시오.

I.E.

var t = setInterval(oneSecondFunction, 1000); 
setTimeout(function() { clearInterval(t); }, 30*60*1000); 
관련 문제