2012-09-18 3 views
2

외부 페이지의 컨텐츠를 AJAXing하고 있습니다. 대부분의 시간은 부하가 1 초 미만이지만,로드가 3 초보다 오래 걸리면 div가 사라질 수있는 방법이 있습니다. 이렇게 뭔가가 ...Jquery는로드 시간이 설정된 시간보다 오래 걸리는 지 확인합니다.

$targetPoint.load($dataImportURL + " " +$rawCollectionPoint,function(){ 
    if (($(this).load >= 3)) 
    { 
     alert ("Its taken more than 3 seconds to load"); 
    }      
}); 
+0

검색 아약스 + 시간 제한 :) 여기까지 : http : //stackoverflow.com/questions/3543683/jquery-ajax-timeout-setting – TimTastic

+1

나는 그가 그 요청을 죽이고 싶지 않다고 생각합니다. 나는 그가 요청보다 오래 걸린다 고 사용자에게 알리고 싶다고 생각한다. – BZink

+0

오, 내 잘못입니다. 그런 다음 내 링크를 무시하십시오! :) – TimTastic

답변

6

JavaScript setTimeout 기능을 살펴보십시오. 당신이 당신의 Ajax 호출을 보내

...

var timeout = setTimeout(function(){ 
    alert ("Its taken more than 3 seconds to load"); 
}, 3000); 

그리고 AJAX 호출이 타임 아웃 트리거를 취소 완료 될 때.

clearTimeout(timeout); 

편집 : 당신이 beforeSend을 활용할 수 있습니다 성공이 같은

뭔가를 콜백 있도록 ... jQuery를에서 .ajax() 기능을 사용 할 수 있습니다

var timeout; 
$.ajax({ 
    url: $dataImportURL + " " +$rawCollectionPoint 
    beforeSend: function(){ 
     timeout = setTimeout(function(){ 
     alert ("Its taken more than 3 seconds to load"); 
    }, 3000); 
    } 
    success: function(data){ 
     clearTimeout(timeout); 
     $targetPoint.html(data); 
    } 

}); 
+0

하지만 그냥로드 기능이 완료되면 바로 기능을 실행합니다. 로드 진행 상황을 확인하는 무언가가 필요합니다. –

+0

아, 방금 편집 했으니 :) 좋아 보이네. 귀하의 도움에 많은 감사드립니다 : D –

+0

그게 효과가 있다면 대답으로 선택하십시오. – BZink

관련 문제