다음은 jQuery의 이전 및 새로운 패러다임에서 시간 초과 설정 및 감지를 보여주는 몇 가지 예입니다.
Live Demo
jQuery 1.8 이상으로 약속
Promise.resolve(
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
})
).then(function(){
//do something
}).catch(function(e) {
if(e.statusText == 'timeout')
{
alert('Native Promise: Failed from timeout');
//do something. Try again perhaps?
}
});
jQuery 1.8 이상
$.ajax({
url: '/getData',
timeout:3000 //3 second timeout
}).done(function(){
//do something
}).fail(function(jqXHR, textStatus){
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
});
jQuery <= 1.7.2
$.ajax({
url: '/getData',
error: function(jqXHR, textStatus){
if(textStatus === 'timeout')
{
alert('Failed from timeout');
//do something. Try again perhaps?
}
},
success: function(){
//do something
},
timeout:3000 //3 second timeout
});
것을 알 수 textStatus의 PARAM (또는 jqXHR.statusText가 ) 오류가 무엇인지 알려줍니다. 실패가 시간 초과로 인해 발생한 것을 알고 싶은 경우에 유용 할 수 있습니다.
오류 (jqXHR, textStatus, errorThrown)
요청이 실패하면 호출 할 함수입니다. 이 함수는 jqXHR (jQuery 1.4.x에서 XMLHttpRequest) 오브젝트, 발생한 오류 유형을 설명하는 문자열 및 발생하는 경우 선택적 예외 오브젝트를 수신합니다. 두 번째 인수 (널 제외)에 가능한 값은 "timeout", "error", "abort"및 "parsererror"입니다. HTTP 오류가 발생하면 errorThrown은 "Not Found"또는 "Internal Server Error"와 같은 HTTP 상태의 텍스트 부분을 수신합니다. jQuery 1.5부터는 오류 설정에 여러 함수를 사용할 수 있습니다. 각 기능이 차례로 호출됩니다. 참고 :이 핸들러는 도메인 간 스크립트 및 JSONP 요청에 대해 호출되지 않습니다.
src : http://api.jquery.com/jQuery.ajax/
,
다음에 가 있어야 합니다}
.