JS setInterval暂停和重启
function fetchData(){
$.ajax({
url:"tym_alarm.asp",
dataType:"text",
success:function(data){
$("#b")[0].innerHTML = data;
if ($("#b")[0].innerHTML!=""){
//如何暂停执行fetchData()10秒钟,10S后再setInterval(fetchData,1000)
}
}
});
}
setInterval(fetchData,1000)
</script> 展开
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
setInterval() 没有暂停这一说,只能清除和开启。
下面是简单的小例子,仅供参考:
<style>
div {width:100px; height:100px; position:absolute; top:50px; left:50px; background:#ccc;}
</style>
<script>
window.onload=function(){
var oDiv = document.getElementById('div1');
var nLeft = parseInt(oDiv.currentStyle?oDiv.currentStyle.left:getComputedStyle(oDiv,false).left);
var timer = setInterval(function(){ //开启定时器
nLeft++;
document.title=nLeft;
oDiv.style.left=nLeft+'px';
if(nLeft == 500)
{
clearInterval(timer); //清除定时器
}
},30);
};
</script>
</head>
<body>
<div id="div1"></div>
2024-11-19 广告
var si = setInterval(fetchData,1000);//启动
clearInterval(si);//停止
这样停止是没有问题,但没办法重启啊
没有重启这么一说,
重新调用
setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
setInterval() 没有暂停这一说,只能清除和开启。
<title></title>
<script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var iCount = setInterval(GetBack, 3000);
function GetBack() {
alert("aa");
$.ajax({
type: "POST",
url: "WebForm4.aspx/GetString",
dataType: "text",
contentType: "application/json; charset=utf-8",
beforeSend: function (XMLHttpRequest) {
},
success: function (msg) {
alert("ff");
},
error: function (msg) {
alert(msg);
}
});
}
$("#cOk").click(function (e) {
clearInterval(iCount);
});
});
</script>
<div>
<a href="#" id="cOk" >sss</a>
</div>
后台代码
------------------
[WebMethod]
public static string GetString()
{
return "aa";
}
timer1 = setInterval(move,5);}
timer();
tan.addEventListener("mouseover",function(){
clearInterval(timer1);
},false);
tan.addEventListener("mouseout",timer,false);