Nice programing

성공, 오류 및 완료 대 .done (), .fail () 및 always ()를 사용하는 jQuery ajax ()

nicepro 2020. 10. 30. 21:01
반응형

성공, 오류 및 완료 대 .done (), .fail () 및 always ()를 사용하는 jQuery ajax ()


질문 :

  1. 아래 제안 된대로 코딩을 변경해야합니까?
  2. .done()& success:, .fail()& error:.always()& 사이에 차이점이 complete:있습니까?

서문 :

나는 과거에도 성공적으로 한 jQuery.ajax 호출을 모으고 있었다. 이 같은:

    $.ajax(
    {
        url: someUrl,
        type: 'POST',
        data: someData,
        datatype: 'json',
        success: function (data) { someSuccessFunction(data); },
        error: function (jqXHR, textStatus, errorThrown) { someErrorFunction(); }
    });

몇 가지 문서를 간략히 살펴보면서 성공, 오류 및 완전한 콜백이 jQuery 1.8에서 더 이상 사용되지 않는다는 참조를 발견했습니다. 최종 제거를 위해 코드를 준비하려면 대신 jqXHR.done (), jqXHR.fail () 및 jqXHR.always ()를 사용하십시오.

따라서 대신 다음과 같은 코딩을 시작해야합니다.

$.ajax( "example.php" )
    .done(function (data) { someSuccessFunction(data); })
    .fail(function (jqXHR, textStatus, errorThrown) { someErrorFunction(); })
    .always(function() { alert("complete"); });

특정 상황에서 그렇게하는 것의 이점은 없습니다.

.done() .fail() .always()방법 의 요점은

  1. 여러 핸들러 연결
  2. 전화 할 때뿐만 아니라 어디에서나 수행 $.ajax

당신은에있는 경우 $.ajax전화 사이트는 하나의 핸들러를 부착 한 후 그 장점은 정말 놀이로 제공되지 않습니다.

따라서 약속을 반환 할 수 있고 다른 사람들이 자신의 핸들러를 첨부 할 수 있습니다.

예는 ajax 요청 후 플러그인을 새로 고치는 것입니다.

$.ajaxPrefilter(function(opt, origOpt, jqxhr) {
    jqxhr.always(function() {
        $("[data-plugin]").plugin();
    });
});

참고 URL : https://stackoverflow.com/questions/18264237/jquery-ajax-using-success-error-and-complete-vs-done-fail-and-always

반응형