我在JavaScript函数中有我的AJAX请求。使用setInterval函数,AJAX函数每5000ms执行一次。
我想知道是否有办法检查以前的AJAX调用是否仍然处理,所以我没有多个AJAX请求相同。
这是我的代码:
function getData(fields){
$.ajax({
url: 'index.php',
type: 'post',
data: { fields: fields },
dataType: 'json',
success: function(json) {
if (json) {
// We have a response
}
});
}
window.setInterval(function(){
getPosts(fields);
}, 2000);
提前致谢!
彼得
答案 0 :(得分:3)
var req;
创建一个我们可以在函数范围之外访问的变量。
function getData(fields) {
req = $.ajax({...});
将变量分配给ajax请求
setInterval(function() {
if (req.state() == 'resolved' && req.state() !== 'pending') {
getPosts(fields);
}
});
检测.state()
答案 1 :(得分:1)
试试这个:
var getDataRequest = null;
function getData(fields) {
if (getDataRequest !== null) {
return;
}
getDataRequest = $.ajax({
url: 'index.php',
type: 'post',
data: { fields: fields },
dataType: 'json',
success: function(json) {
if (json) {
// We have a response
}
getDataRequest = null;
}
});
}
window.setInterval(function() {
getPosts(fields);
}, 2000);