我正在使用jQuery执行AJAX请求,该工作正常,但服务器响应在具有URL的XML响应和没有内容的XML响应之间变化。
实际上,这两个响应都将请求限定为“成功”或“完成”,因此在处理我的AJAX请求的“完成”事件时,我想验证响应是否为空,如果是,延迟后再次尝试AJAX请求。
我正在研究jQuery的承诺,但我不确定这是否是我想要的,但如果是,请提供一个易于理解的示例。
这就是我想要的:
function(name, location){
$.ajax({
type: "POST",
url: "some.php",
data: { name: name, location: location }
}).done(function( msg ) {
if (msg.length < 1) {
setTimeout(
// Perform this request again
, 500);
} else {
// Go on
}
});
}
答案 0 :(得分:0)
只是一个猜测
//here´s a function called runAgain, waiting for two parameters, the timeout function will execute it again
function runAgain(name, location){
$.ajax({
type: "POST",
url: "some.php",
data: { name: name, location: location }
}).done(function( msg ) {
if (msg.length < 1) {
setTimeout(function(){
runAgain(name,location)
}, 500);
} else {
// Go on
}
});
}
//This function runs when the document is ready, an calls the runAgain function
$(function(){
var name= "?";
var location = "?";
runAgain(name,location);
});