2012-09-13 3 views
1

html 콘텐츠를 가져 오기 위해 URL 집합에 대한 아약스 호출을했습니다. 하지만 URL 중 일부는 콘텐츠를 가져 오는 데 오랜 시간이 걸리며 1 초 이상은 걸리지 않습니다.Jquery ajax 호출 시간 초과.

for (url in list) { 
    $.ajax({ 
     'url': url, 
     type: 'get', 
     timeout: 1000, 
     success: function() { 
      //doSomething 
     }, 
     complete: function() { 
      //what to write? 
     } 
    }); 

} 

아약스 호출이 시간 초과되고 전체 기능을 실행하는 방법을 알려 주실 수 있습니까?

나는 분명하지 않은지 알고 있습니다. 감사합니다.

답변

2

먼저 사용하려는 인수가 함수가 아니기 때문에 $.ajax(function() {$.ajax({으로 변경하십시오.

옵션 개체에 시간 초과를 지정 했으므로 페이지가 제 시간에 응답하지 않으면 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을 참조하십시오. 기능에 대한 설명이 잘 나와 있습니다.

+0

내가하지 '타임 아웃'과 같은 상태에서 '오류'로 받고 있어요. – UmaShankar

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; 
} 
관련 문제