我对一组url进行了ajax调用以获取html内容。但是有些网址需要很长时间才能获得内容,我可以跳过超过1秒的内容。
for (url in list) {
$.ajax({
'url': url,
type: 'get',
timeout: 1000,
success: function () {
//doSomething
},
complete: function () {
//what to write?
}
});
}
如果超时并执行完整的功能,你可以帮我解决如何中止ajax调用。
Lemme知道我是不是很清楚。 感谢
答案 0 :(得分:2)
首先,将$.ajax(function() {
更改为$.ajax({
,因为您尝试使用的参数是对象,而不是函数。
由于您在options对象中指定了超时,如果页面没有及时响应,ajax方法将告诉您的error
函数,只要您指定一个。
$.ajax({
'url': yourUrlHere,
success: function(){ /*do stuff*/ },
timeout: 1000,
error: function(xhr, status, err){
//status === 'timeout' if it took too long.
//handle that however you want.
console.log(status,err);
}
});
请参阅the documentation for $.ajax
here,因为它对该功能有很好的解释。
答案 1 :(得分:0)
如果发生这种情况,您可以中止请求,然后转到下一个请求。
var ajaxRequests = null;
for(url in list){
var newRequest = $.ajax({
type: 'GET',
url: url,
data: '{}',
dataType: 'json',
beforeSend: function() {
var r = ajaxRequest;
if (r != null && r != undefined) {
r.abort();
}
},
success: function(result) {
// what has to be done if the ajax request comes through
},
complete: function() {
ajaxRequests = null;
}
ajaxReqs = newRequest;
}