programing

성공과 .done의 방법 $.done의 차이점은 무엇입니까?

goodsources 2023. 9. 18. 21:18
반응형

성공과 .done의 방법 $.done의 차이점은 무엇입니까?

누가 나를 도와줄 수 있나요?
나는 그 사이의 차이를 이해할 수 없습니다.success그리고..done()$.ajax.

가능하다면 예를 들어 주시기 바랍니다.

successAJAX 호출이 성공한 경우에만 실행됩니다. 즉, 궁극적으로 HTTP 200 상태를 반환합니다.error실패하면 발사를 하고,complete요청이 완료되면 성공 여부에 관계없이 완료됩니다.

InjQuery 1.8 on thejqXHR객체(별도)$.ajax)success로 대체되었습니다.done,error와 함께fail그리고.complete와 함께always.

그러나 이전 구문으로 AJAX 요청을 초기화할 수는 있습니다.따라서 이와 유사한 작업을 수행합니다.

// set success action before making the request
$.ajax({
  url: '...',
  success: function(){
    alert('AJAX successful');
  }
});

// set success action just after starting the request
var jqxhr = $.ajax( "..." )
  .done(function() { alert("success"); });

이 변경 사항은 jQuery 1.5의 지연 개체와의 호환성을 위한 것입니다.연기됨(그리고 지금)Promise, Chrome 및 FX)에서 완전한 네이티브 브라우저를 지원하므로 비동기 동작을 체인으로 연결할 수 있습니다.

$.ajax("parent").
    done(function(p) { return $.ajax("child/" + p.id); }).
    done(someOtherDeferredFunction).
    done(function(c) { alert("success: " + c.name); });

이 함수 체인은 중첩된 콜백 피라미드보다 유지 관리하기가 더 쉽습니다.success.

하지만 참고하시기 바랍니다.done지금은 더 이상 사용하지 않습니다.Promise를 사용하는 구문then대신:

$.ajax("parent").
    then(function(p) { return $.ajax("child/" + p.id); }).
    then(someOtherDeferredFunction).
    then(function(c) { alert("success: " + c.name); }).
    catch(function(err) { alert("error: " + err.message); });

이것은 채택할 가치가 있습니다 왜냐하면async그리고.awaitextend promise 개선된 구문(및 오류 처리):

try {
    var p = await $.ajax("parent");
    var x = await $.ajax("child/" + p.id);
    var c = await someOtherDeferredFunction(x);
    alert("success: " + c.name);
}
catch(err) { 
    alert("error: " + err.message); 
}

간단히 말해서, 성공 콜백 기능을 ajax 기능에서 분리하면 나중에 원래 코드(관찰자 패턴)를 수정하지 않고 자신의 핸들러를 추가할 수 있습니다.

여기서 더 자세한 정보를 찾으십시오: https://stackoverflow.com/a/14754681/1049184

.success()웹 서버가 200 OK HTTP 헤더로 응답하는 경우에만 호출됩니다. 기본적으로 모든 것이 정상일 때입니다.

done()에 첨부된 콜백은 지연이 해결되면 실행됩니다.fail()에 첨부된 콜백은 지연된 것이 거부되면 실행됩니다.

promise.done(doneCallback).fail(failCallback)

.done() has only one callback and it is the success callback

success는 요청이 성공적으로 수행될 때 호출되는 콜백으로, 에 포함됩니다.$.ajax불러.done사실은 그 일부입니다.jqXHR에 의해 반환된 물건$.ajax(), 대체합니다.successjQuery 1.8에서.

언급URL : https://stackoverflow.com/questions/8847829/what-is-difference-between-success-and-done-method-of-ajax

반응형