[英]SetInterval calling AJAX request on two URLs at the same time
我有一个像这样的AJAX函数和setInterval
函数:
$("a[name=device_submit]").click(function(event) {
var get_url = $(this).attr('href');
event.preventDefault();
$.ajax({
url: get_url,
success: function(data) {
var data = JSON.parse(data);
latitude = data[0].fields.latitude;
longitude = data[0].fields.longitude;
initialize(latitude, longitude)
},
statusCode: {
400: function(data) {
alert("No data found for this device!");
}
}
});
setInterval(function() {
$.ajax({
url: get_url,
success: function(data) {
var data = JSON.parse(data);
latitude = data[0].fields.latitude;
longitude = data[0].fields.longitude;
//Remove current marker and change the position
for (var i = 0; i < markersArray.length; i++) {
markersArray[i].setMap(null);
}
changeMarkerPosition(latitude, longitude);
}
});
}, 9000);
});
当我单击第一个URL(例如url1)时,一切正常,第一个AJAX请求被发送,另一个请求每9秒触发一次。
单击url2时出现问题。 url2成功地响应了成功,但是现在,AJAX请求被触发了两次:
AJAXRequesturl1
AJAXRequesturl2
我不想要这个,我只想为已单击的URL设置setInterval
。 而已。
如何解决这个问题?
setInterval
的返回值是一个ID,允许您取消该间隔:
var timer = setInterval(...);
// later on...
clearInterval(timer)
您需要将setInterval Id存储在变量中,然后在下次单击鼠标时清除间隔。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.