在javascript中我们知道setInterval()函数可以规定 每过一段时间就执行某一个js函数 也就是我们常说的"轮询" 但是 有时候我们需要在满足某些特定的情况下 停止让setInterval()函数执行 比如 我们在做支付的时候 可以做ajax轮询检测订单状态 只要订单的状态检测是已经支付的状态 那么此时我们就不需要让setInterval()来一直向服务端发起http请求。从而减少服务器压力。要停止setInterval()函数的执行 需要使用clearInterval()(id_of_setinterval)函数。
id_of_setinterval:由 setInterval()返回的ID值。说白了就是setInterval()会有一个返回值,而clearInterval(id_of_setinterval)函数的参数则是setInterval()的返回值
具体使用如下:
//获取订单状态 var t = setInterval(function(){ var url = "{:url('orderInfo')}"; var order_id = $("input[name='order_id']").val(); var data = {order_id:order_id}; $.post(url,data,function(msg){ //订单已支付成功 if(msg.order_status == 1) { clearInterval(t); //清除定时执行 //然后你可以继续做其它事情。。 具体看业务场景和具体需求了。。 } },'json') },2000);
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论