JS setInterval暂停和重启

JS setInterval暂停和重启,第1张

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/jsoncharset=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"

}

异步执行的函数需要使用回调来获取返回值你那种想等待回调函数执行后再把结果作为返回值的想法是无法实现,并且是极不可取的因为你并不知道需要多久该回调函数才能执行,让主线程阻塞在这儿等待不是一个正确的做法。

正确的做法还是在回调函数中获得值进行处理推荐写法:

var addre =""var bm = new BMap.Map("container")gpsxy = function (xx,yy,i,callback){//添加一个参数作为回调函数,该函数可以获取addre参数

var gpsPoint = new BMap.Point(xx,yy)

bm.clearOverlays()var marker = new BMap.Marker(gpsPoint)bm.addOverlay(marker)

bm.setCenter(gpsPoint)var gc = new BMap.Geocoder()

gc.getLocation(gpsPoint, function(rs){ var addComp = rs.addressComponents

addre = addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumbercheck()

if(callback) callback(addre)//把addre传递到回调函数中,这样就可以在函数外部使用返回值了 })}

调用示范:gpsxy(10,10,1,function(addre){ alert(addre)//这儿就可以使用这个值了 })

第一种自动延迟效果:settimeout()函数

第二种手动暂停再手动开始的话需要两个函数了:一个添加settimeout(),另外一个clearTimeout()手动终止暂停


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11690254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存