2011-04-14 33 views
2

我有一個jQuery腳本,每秒運行一個函數setinterval。但我想爲此設置一個超時時間,因此在半小時後它終止了腳本。我該怎麼做呢?謝謝:)我如何超時設置每半小時運行一次的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); 
相關問題