【发布时间】:2014-04-08 16:15:31
【问题描述】:
我有一个像这样的 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
我不想要这个,我只想要setInterval 用于已点击的网址。就是这样。
如何解决这个问题?
【问题讨论】:
标签: javascript ajax setinterval