jQuery에는 중단 요청을 시도하는 데 사용할 수있는 일부 중단 API가 있습니다. jQuery가 실제로 Ajax 요청 자체를 중단 할 수 있습니까?jQuery aborting request
예를 들어 비행 중에 Ajax 요청이 많고 jQuery가 다른 모든 것을 중단하기로 결정한 이상한 메시지가 다시 발생한다고 가정 해 보겠습니다.
이렇게 될 수 있습니까?
jQuery에는 중단 요청을 시도하는 데 사용할 수있는 일부 중단 API가 있습니다. jQuery가 실제로 Ajax 요청 자체를 중단 할 수 있습니까?jQuery aborting request
예를 들어 비행 중에 Ajax 요청이 많고 jQuery가 다른 모든 것을 중단하기로 결정한 이상한 메시지가 다시 발생한다고 가정 해 보겠습니다.
이렇게 될 수 있습니까?
timeout
옵션을 제외하고 일반적으로 jQuery는 결정하지 않습니다. 당신은를 결정합니다.
루틴은 항상 $.ajax()
이 반환하는 참조를 갖습니다.
의미 : $.ajax()
을 호출하는 대신 xhr = $.ajax()
대신이 작업을 수행하십시오.
$.ajax()
은 jqXHR 객체를 반환합니다.이 객체는 Ajax 기능의 jQuery 래퍼입니다. 당신이 xhr
을 가지고, 당신은 당신이 원하는 어디서든 xhr.abort()
를 호출 할 수 있습니다 지금 http://api.jquery.com/jQuery.ajax/
를 참조하십시오.
실제로 디자인하는 방법에 따라 다르지만, .abort() 호출을 사용하십시오. 다음은 하나의 가능한 사용 사례 일 수 있습니다.
폴링 기능 하나와 사용자가 너무 오래 유휴 상태인지 확인하는 또 다른 기능.
유휴 상태 인 경우 폴링 아약스를 중단 한 다음 세션이 종료되었다는 경고 메시지를 사용자에게 표시합니다.
예 사용 사례 :
var mainXHR; // this is just one reference.
// You can of course have an array of references instead
function mainPollingFunction() {
mainXHR = $.ajax({
url: 'keepAlive.php',
// more parameters here
timeout: 10000, // 10 seconds
success: function() {
// server waits 10 seconds before responding
mainPollingFunction(); // initiate another poll again
}
});
}
// Let's say this function checks if the user is idle
// and runs when a setTimeout() is reached
function otherFunction() {
if (/* if user is idle */) {
if (mainXHR) mainXHR.abort(); // abort the ajax in case it's still requesting
}
}