我有一个函数(一个ajax调用),如果超时,我需要调用相同的函数2次。 所以我这样做了
所以我这样做了
var number_0f_times_called = 0; // global variable
$.ajax({
type: 'GET',
url: url+'/OMS/oms1/fromscratchmodified?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
timeout: 5000,
jsonp: false,
success: function(response) {
},
error: function(x, t, m) {
if(t==="timeout") {
number_0f_times_called = 1;
recall();
}
}
});
function recall()
{
if(number_0f_times_called<=2)
{
$.ajax({
type: 'GET',
url: url+'/OMS/oms1/fromscratchmodified?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
timeout: 5000,
jsonp: false,
success: function(response) {
},
error: function(x, t, m) {
if(t==="timeout") {
recall();
}
}
});
}
else
{
alert('Data Connection Too Weak');
}
}
问题是该函数是否继续保持调用?
答案 0 :(得分:1)
因为存储调用量的变量的值始终为1
。在number_0f_times_called
发生时调用您的函数后,您应该添加error
变量值增加:
var number_0f_times_called = 0; // global variable
$.ajax({
type: 'GET',
url: url+'/OMS/oms1/fromscratchmodified?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
timeout: 5000,
jsonp: false,
success: function(response) {
},
error: function(x, t, m) {
if(t==="timeout") {
number_0f_times_called = 1;
recall();
}
}
});
function recall()
{
if(number_0f_times_called<=2)
{
$.ajax({
type: 'GET',
url: url+'/OMS/oms1/fromscratchmodified?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
timeout: 5000,
jsonp: false,
success: function(response) {
},
error: function(x, t, m) {
if(t==="timeout") {
number_0f_times_called++;
recall();
}
}
});
}
else
{
alert('Data Connection Too Weak');
}
}
答案 1 :(得分:1)
因为它总是小于2
你可能想要的是number_0f_times_called += 1