JSON 시간 초과 처리 가져오기
jQuery를 사용하고 있습니다.getJSON()
기능.이 기능은 문제 없이 데이터를 얻을 수 있습니다.하지만 가끔은 기다리고, 기다리고...그리고 페이지 중앙에 로드 로드 로드를 보여주는 로드 바가 있습니다.SojQueryajax()
함수에 시간 초과 변수가 있습니다.하지만 나는 사용하고 싶습니다.getJSON
기능.그리고 나는 내가 사용할 수 있다고 생각합니다.ajaxStart()
그리고.ajaxStop()
기능들.하지만 어떻게요?
$('.loadingDiv')
.hide()
.ajaxStart(function() {
$(this).fadeIn();
setTimeout("throw '';",15000) //i used this but didn't work
setTimeout("return;",15000) //i used this but didn't work
setTimeout("abort();",15000) //i used this but didn't work.(Abort all ajax events)
})
.ajaxStop(function() {
$(this).fadeOut();
});
getJSON()
호출할 수 있는 약속을 반환합니다.abort
함수:
var p = $.getJSON(..., function(){ alert('success');});
setTimeout(function(){ p.abort(); }, 2000);
편집: 하지만 만약 너무 많은 시간이 걸린다면 당신의 목표가 단지 중단하는 것이라면, 필살기 기타의 대답이 더 낫습니다.
getJSON()
는 다음의 약어일 뿐입니다.
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
그래서 당신은 사용할 수 있습니다.$.ajax()
다음을 지정합니다.timeout
원하는 옵션을 선택합니다.참고 항목: http://api.jquery.com/jQuery.getJSON/
필살 기타가 언급했듯이getJSON()
기능은 의 약어일 뿐입니다.$.ajax()
실제 오류가 아닌 시간 초과가 발생했는지 탐지하려면 아래 코드를 사용하십시오.
var request = $.ajax({
dataType: "json",
url: url,
data: data,
success: function( ) { },
timeout: 2000
}).fail( function( xhr, status ) {
if( status == "timeout" ) {
// do stuff in case of timeout
}
});
핵개발 경로도 항상 존재합니다.
//Set AJAX timeout to 10 seconds
$.ajaxSetup({
timeout: 10*1000
});
이렇게 하면 프로그램에서 요청하는 모든 AJAX가 설정됩니다($.getJ를 통해서도).SON) 10초 안에 시간을 갖는 것 (혹은 당신은 무엇을 가지고 있습니까).
setTimeout 함수는 전역 범위에서 지정된 밀리초 수 이후에 코드 집합을 실행합니다.
겟제이SON 함수(여기에 있는 jQuery 설명서에 따르면 http://api.jquery.com/jQuery.getJSON/) 는 다음의 약자입니다.
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
따라서 다음과 같이 전화를 걸 수 있습니다.
$.ajax({
dataType: "json",
url: url,
data: data,
success: success,
timeout: 15000
});
$('.loadingDiv')
.hide()
.ajaxStart(function() {
$(this).fadeIn();
})
.ajaxStop(function() {
$(this).fadeOut();
});
저는 이 대답들 중 어떤 것도 이상적이지 않다고 생각합니다.이것이 몇 년이나 늦었다는 것을 알지만, 당신이 원하는 것은 성공/오류 콜백 옵션을 사용하는 것입니다..ajax();
메서드는 JSONP 응답을 수신할 때 사용됩니다.
이를 구성하는 방법의 예:
// Call
$.ajax({
// URL you want to get
url: 'http://example.com/json?callback=?',
// Set a realistic time in milliseconds
timeout: 3000,
// Put in success callback function here, this example
// shows you the data you got back from the call
success: function(data) {
console.log(data);
},
// Put in an error handling function, just an alert in this case
error: function(badData) {
alert('The call was unsuccessful');
},
type: 'POST'
});
언급URL : https://stackoverflow.com/questions/14238619/getjson-timeout-handling
'programing' 카테고리의 다른 글
Node.js 오류: 모듈 익스프레스를 찾을 수 없습니다. (0) | 2023.08.28 |
---|---|
자바스크립트/jQuery에서 객체의 속성을 가져오는 방법은? (0) | 2023.08.28 |
CLOB 대 VARCHAR2 및 다른 대안이 있습니까? (0) | 2023.08.28 |
오류 처리(ex 발송).고객에게 보내는 메시지) (0) | 2023.08.23 |
jQuery 데이터 테이블:3자를 입력하거나 버튼을 클릭할 때까지 검색 지연 (0) | 2023.08.23 |