在javascript中我们知道setInterval()函数可以规定 每过一段时间就执行某一个js函数 也就是我们常说的"轮询" 但是 有时候我们需要在满足某些特定的情况下 停止让setInterval()函数执行 比如 我们在做支付的时候 可以做ajax轮询检测订单状态 只要订单的状态检测是已经支付的状态 那么此时我们就不需要让setInterval()来一直向服务端发起http请求。从而减少服务器压力。要停止setInterval()函数的执行 需要使用clearInterval()(id_of_setinterval)函数。
id_of_setinterval:由 setInterval()返回的ID值。说白了就是setInterval()会有一个返回值,而clearInterval(id_of_setinterval)函数的参数则是setInterval()的返回值
具体使用如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //获取订单状态 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); |
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论