programing

jQuery를 사용하여 '어떤' ajax 요청이 완료되는지 탐지하려면 어떻게 해야 합니까?

megabox 2023. 10. 1. 19:23
반응형

jQuery를 사용하여 '어떤' ajax 요청이 완료되는지 탐지하려면 어떻게 해야 합니까?

javascript / jquery를 삽입하여 출력을 조작할 수 있는 페이지가 있습니다.저는 페이지 마크업 등에 대한 다른 통제권이 없습니다.

나는 페이지에 각각의 선물 후에 jquery를 통해 추가 요소를 추가해야 합니다.문제는 $(문서) 이후에 발생하는 기존 페이지의 비동기 호출을 통해 요소가 생성된다는 것입니다.준비 완료.

기본적으로 페이지가 로드되고 이후의 ajax 호출이 완료된 후 jquery를 호출하는 방법이 필요합니다.페이지에서 ajax 호출이 완료된 것을 감지하고 새로 생성된 s 뒤에 추가 요소를 삽입하기 위해 나만의 사용자 정의 함수를 호출하는 방법이 있습니까?

유감스럽게도 OP가 사용하지 않는 것 같아서 적용되지 않습니다. $.ajax() 또는 콘텐츠를 실제로 로드하기 위한 임의의 jQuery ajax 방법이지만 미래의 구글러가 이것을 할 경우를 대비하여 여기에 남겨 둡니다.


여기서 고객의 요구에 맞는 모든 글로벌 ajax 이벤트를 사용할 수 있습니다. 또는 를 사용할 수 있습니다.

예를 들어,

$(document).ajaxSuccess(function() {
  alert("An individual AJAX call has completed successfully");
});
//or...
$(document).ajaxComplete(function() {
  alert("ALL current AJAX calls have completed");
});

일부 일반 기능만 실행하려면 해당 기능을 문서에 첨부합니다(아래의 이벤트일 뿐입니다).모달이나 메시지와 같은 특정한 것을 보여주기를 원하는 경우에는 다음과 같이 좀 더 부드럽게 사용할 수 있습니다.

$("#myModal").ajaxComplete(function() {
  $(this).fadeIn().delay(1000).fadeOut();
});

다음 예제에서는 jQuery를 사용하여 ajax 호출의 시작과 끝에 있는 요소만 표시하고 숨깁니다.

    $("#contentLoading").ajaxSend(function(r, s) {
        $(this).show();
        $("#ready").hide();
    });

    $("#contentLoading").ajaxStop(function(r, s) {
        $(this).hide();
        $("#ready").show();
    });

#contentLoading는 gif 이미지 진행 표시기입니다.

이해할 수 있듯이, 당신은 준비된 핸들러에서 jQuery의 Ajax 기능을 사용하고 있습니다.그래서 그냥 다른 함수를 전달하면 되는데, 이 함수는 당신의 Ajax 함수가 응답을 받은 후에 호출됩니다.예를들면

$(document).ready(function(){
    $("#some_div").load('/some_url/', function(){
        /* Your code goes here */
    });
});

XMLHttpRequest 개체의 send() 함수를 다시 작성할 수 있습니다.

순수한 자바스크립트를 이용한 해결책을 여기서 찾아보세요.

.live()/.delegate()를 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/2912057/how-can-i-detect-any-ajax-request-being-completed-using-jquery

반응형