복붙노트

[JQUERY] jQuery가 Ajax 요청이 보류중인 경우 어떻게 알 수 있습니까?

JQUERY

jQuery가 Ajax 요청이 보류중인 경우 어떻게 알 수 있습니까?

해결법


  1. 1.AjaxStart와 AjaxStop을 사용하여 요청이 활성화 된시기를 추적 할 수 있습니다.

    AjaxStart와 AjaxStop을 사용하여 요청이 활성화 된시기를 추적 할 수 있습니다.


  2. 2.$ .Active 활성 Ajax 요청 수를 반환합니다.

    $ .Active 활성 Ajax 요청 수를 반환합니다.

    더 많은 정보가 있습니다


  3. 3.

     $(function () {
            function checkPendingRequest() {
                if ($.active > 0) {
                    window.setTimeout(checkPendingRequest, 1000);
                    //Mostrar peticiones pendientes ejemplo: $("#control").val("Peticiones pendientes" + $.active);
                }
                else {
    
                    alert("No hay peticiones pendientes");
    
                }
            };
    
            window.setTimeout(checkPendingRequest, 1000);
     });
    

  4. 4.$ .ajax () 함수는 xmlhttpRequest 객체를 반환합니다. 제출 단추의 "OnClick"이벤트에서 액세스 할 수있는 변수에 저장하십시오. 제출 된 클릭이 처리되면 XMLHTTPRequest 변수가 있는지 확인하십시오.

    $ .ajax () 함수는 xmlhttpRequest 객체를 반환합니다. 제출 단추의 "OnClick"이벤트에서 액세스 할 수있는 변수에 저장하십시오. 제출 된 클릭이 처리되면 XMLHTTPRequest 변수가 있는지 확인하십시오.

    1) NULL, 아직 요청이 없어지지 않았 음을 의미합니다.

    2) readyState 값이 4 (로드)된다는 것입니다. 즉, 요청이 전송되고 성공적으로 반환되었음을 의미합니다.

    이러한 경우 중 하나에서 true를 반환하고 제출을 계속할 수 있습니다. 그렇지 않으면 FALSE를 반환하여 제출을 차단하고 사용자에게 제출물이 작동하지 않은 이유를 사용자에게 알려주십시오. :)


  5. 5.요청이 활성화되면 요청을 중단하기 위해 $ .ajax.abort () 메소드를 사용해야합니다. 이 약속 객체는 ReadyState 속성을 사용하여 요청이 활성인지 여부를 확인합니다.

    요청이 활성화되면 요청을 중단하기 위해 $ .ajax.abort () 메소드를 사용해야합니다. 이 약속 객체는 ReadyState 속성을 사용하여 요청이 활성인지 여부를 확인합니다.

    HTML.

    <h3>Cancel Ajax Request on Demand</h3>
    <div id="test"></div>
    <input type="button" id="btnCancel" value="Click to Cancel the Ajax Request" />
    

    JS 코드

    //Initial Message
    var ajaxRequestVariable;
    $("#test").html("Please wait while request is being processed..");
    
    //Event handler for Cancel Button
    $("#btnCancel").on("click", function(){
    if (ajaxRequestVariable !== undefined)
    
    if (ajaxRequestVariable.readyState > 0 && ajaxRequestVariable.readyState < 4)
    {
      ajaxRequestVariable.abort();
      $("#test").html("Ajax Request Cancelled.");
    }
    });
    
    //Ajax Process Starts
    ajaxRequestVariable = $.ajax({
                method: "POST",
                url: '/echo/json/',
                contentType: "application/json",
                cache: false,
                dataType: "json",
                data: {
            json: JSON.encode({
             data:
                 [
                                {"prop1":"prop1Value"},
                        {"prop1":"prop2Value"}
                      ]         
            }),
            delay: 11
        },
    
                success: function (response) {
                $("#test").show();
                $("#test").html("Request is completed");           
                },
                error: function (error) {
    
                },
                complete: function () {
    
                }
            });
    
  6. from https://stackoverflow.com/questions/1822913/how-do-i-know-if-jquery-has-an-ajax-request-pending by cc-by-sa and MIT license