我的html文件中有一个文档就绪函数,如下所示
$(document).ready(function()
{
cust_id = getParameterByName('customer_id');
var locationAjaxCall = $.ajax({
type: 'GET',
url: url+'/OMS/oms1/getlocationscreen?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
cache: true,
dataType: 'jsonp',
jsonp: false,
success: function (response) {
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
locationAjaxCall.done(function() {
$.ajax({
type: 'GET',
url: url+'/OMS/oms1/fromscratchmodified?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
jsonp: false,
timeout: 5000,
success: function(response) {
},
error: function(x, t, m) {
if(t==="timeout") {
alert("got timeout");
}
}
});
}).done(function() {
});
});
进行第二次Ajax调用。我保持超时 5秒,如下所示
我的问题是,如果在第二次Ajax调用期间发生超时,我该如何再次进行Ajax调用?
(我不想重新加载整个页面,因为我可能会丢失一些已设置的数据)
请告诉我是否可能?
答案 0 :(得分:1)
将第二个AJAX调用移动到某个函数,也许?当超时发生时,再次调用它。
function fname() {
$.ajax({
type: 'GET',
url: url+'/OMS/oms1/fromscratchmodified?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
jsonp: false,
timeout: 5000,
success: function(response) {
// success
},
error: function(x, t, m) {
if(t==="timeout") {
alert("got timeout");
fname();
}
}
});
}
答案 1 :(得分:1)
$(document).ready(function()
{
cust_id = getParameterByName('customer_id');
var locationAjaxCall = $.ajax({
type: 'GET',
url: url+'/OMS/oms1/getlocationscreen?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
cache: true,
dataType: 'jsonp',
jsonp: false,
success: function (response) {
},
error: function (xhr, ajaxOptions, thrownError) {
}
});
locationAjaxCall.done(function() {
var intvl=setInterval(function(){
$.ajax({
type: 'GET',
url: url+'/OMS/oms1/fromscratchmodified?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
jsonp: false,
timeout: 5000,
success: function(response) {
clearInterval(intvl);
},
error: function(x, t, m) {
if(t==="timeout") {
alert("got timeout");
}
}
});
},5000);
}).done(function() {
});
});