새 jQuery AJAX 코드에 성공 및 오류 대신 .done() 및 .fail()을 사용해야 합니까?
다음과 같이 코딩했습니다.
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID },
success: function (data) {
$('#CityID').html(data);
},
error: function (ajaxContext) {
alert(ajaxContext.responseText)
}
});
하지만 마지막에 있는 jQuery 문서를 보면 아래와 같이 코딩해야 한다고 제안하거나 최소한 추가해야 한다고 제안하는 것 같습니다..done()그리고 a.fail():
var request = $.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
});
request.done(function (data) {
xxx;
});
request.fail(function (jqXHR, textStatus) {
xxx;
});
갱신하다
제가 이렇게 코딩을 하면 똑같나요, 아니면 세 개로 나눌 수 있는 장점이 있나요?
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
}).done(function (data) {
xxx;
}).fail(function (jqXHR, textStatus) {
xxx;
});
사용자 2246674에 의해 명시된 바와 같이,success그리고.errorAjax 함수의 매개 변수가 유효하기 때문입니다.
선행 답변과 일관성을 유지하기 위해 문서를 참조하십시오.
사용 중지 알림:
jqXHR.success(), jqXHR.error() 및 jqXHR.complete() 콜백은 jQuery 1.8에서 더 이상 사용되지 않습니다.코드를 최종적으로 제거할 수 있도록 준비하려면 jqXHR.done(), jqXHR.fail() 및 jqXHR.always()를 대신 사용합니다.
콜백-조작 함수를 사용하는 경우(예: 메서드 체인 사용),.done(),.fail()그리고..always()대신에success(),error()그리고.complete().
@Michael Laffargue의 게시물에 추가하고 싶은 것이 있습니다.
jqXHR.done()더 빠릅니다!
jqXHR.success()콜백에 로드 시간이 있고 때로는 스크립트를 오버킬할 수 있습니다.전에 그것을 어렵게 발견했습니다.
업데이트:
사용.jqXHR.done(),jqXHR.fail()그리고.jqXHR.always()아약스 요청으로 더 잘 조작할 수 있습니다.일반적으로 일부 변수나 개체에서 Ajax를 정의하고 코드의 모든 부분에서 해당 변수나 개체를 사용하여 데이터를 더 빠르게 가져올 수 있습니다.좋은 예:
/* Initialize some your AJAX function */
function call_ajax(attr){
var settings=$.extend({
call : 'users',
option : 'list'
}, attr );
return $.ajax({
type: "POST",
url: "//exapmple.com//ajax.php",
data: settings,
cache : false
});
}
/* .... Somewhere in your code ..... */
call_ajax({
/* ... */
id : 10,
option : 'edit_user'
change : {
name : 'John Doe'
}
/* ... */
}).done(function(data){
/* DO SOMETHING AWESOME */
});
간단히 말하면
$.ajax("info.txt").done(function(data) {
alert(data);
}).fail(function(data){
alert("Try again champ!");
});
만약 그것이 info.text를 얻는다면, 그것은 당신이 어떤 함수를 추가하든, 또는 서버로부터 info.text를 검색할 수 없다면, 경보나 오류 함수를 알려줄 것입니다.
jQuery가 이러한 방법을 사용하지 않기 때문에 이전 기존 응용 프로그램에서 jQuery로 1.x에서 2.x 또는 3.x로 마이그레이션할 때 성공 대신 .done, .fail, error를 사용합니다.예를 들어 서버 웹 메서드에 호출한 다음 서버가 호출 메서드(Ajax 메서드)로 약속 개체를 반환하는 경우 이러한 약속 개체에는 .done, .fail 등의 메서드가 포함됩니다.따라서 성공 및 실패 대응에 대해서도 동일한 작업을 수행합니다.다음은 예입니다(예: GET...와 같은 요청 유형에 대해 구성할 수 있는 것과 동일한 방법으로 POST 요청을 위한 것입니다).
$.ajax({
type: "POST",
url: url,
data: '{"name" :"sheo"}',
contentType: "application/json; charset=utf-8",
async: false,
cache: false
}).done(function (Response) {
//do something when get response })
.fail(function (Response) {
//do something when any error occurs.
});
언급URL : https://stackoverflow.com/questions/10931836/should-i-use-done-and-fail-for-new-jquery-ajax-code-instead-of-success-and
'IT' 카테고리의 다른 글
| Sun JSTL taglib 선언이 실패하고 "태그 라이브러리 설명자를 찾을 수 없습니다"가 표시됨 (0) | 2023.08.16 |
|---|---|
| .git 속성 파일에서 text=auto의 목적은 무엇입니까? (0) | 2023.08.16 |
| 빈 테이블에 인덱스를 만든 후 데이터를 삽입하거나 오라클에 데이터를 삽입한 후 고유 인덱스를 생성하시겠습니까? (0) | 2023.08.16 |
| 버튼을 클릭할 때 jquery datables fnServerData를 트리거하여 AJAX를 통해 테이블을 업데이트하려면 어떻게 해야 합니까? (0) | 2023.08.16 |
| 스프링 부트 + 멀티 테넌시(Multi-tenancy)가 포함된 스프링 데이터 (0) | 2023.08.16 |