JavaScript에서 비동기적으로 데이터를 불러올 때 자주 사용되는 두 가지 방법인 `fetch`와 `jQuery.ajax`는 몇 가지 중요한 차이점이 있다.
### Fetch API
1. 기본 제공: `fetch`는 최신 브라우저에서 기본적으로 제공되는 네이티브 JavaScript API다. 추가 라이브러리 없이 사용할 수 있는 게 장점이라면 장점!
2. Promise 기반: Promise 기반으로 설계되었다고 한다. 따라서 비동기 작업을 처리하기 위해 `then`, `catch` 및 `finally` 메서드를 사용한다.
3. 간단하고 현대적인 문법: 간결하고 직관적인 문법을 제공하며, async/await와 함께 사용할 때 더욱 가독성이 좋다.
4. 자동 JSON 변환 없음: 기본적으로 응답을 JSON으로 자동 변환을 지원하지 않는다. 수동으로 `response.json()`을 호출한다.
### jQuery.ajax
1. 라이브러리 필요: `jQuery.ajax`는 jQuery 라이브러리가 필요하다.
2. 콜백 기반: `success`, `error`, `complete`와 같은 콜백 함수를 사용하여 비동기 작업을 처리한다.
3. 다양한 기능 제공 및 복잡한 설정 가능: 파일 업로드 진행 상황 추적, 전역 AJAX 이벤트 핸들링, 동기화 호출 등을 쉽게 처리할 수 있다. 그리고 더 복잡한 설정이 가능하다. 가령 여러 종류의 데이터 타입, 컨텐츠 타입 등을 설정할 수 있다.
5. 자동 JSON 변환: 응답이 JSON 형식인 경우 자동으로 JSON으로 변환할 수 있다.
### 코드 예시
Fetch API 예시
fetch('https://api.example.com/data')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
console.log(data); // 서버 응답 내용
})
.catch(error => {
console.error('Request failed:', error);
});
jQuery.ajax 예시
$.ajax({
url: 'https://api.example.com/data',
method: 'GET',
success: function(data) {
console.log(data); // 서버 응답 내용
},
error: function(xhr, status, error) {
console.error('Request failed:', error);
}
});
### 주요 차이점 요약
- Fetch: 네이티브 API, Promise 기반, 더 단순한 문법, 브라우저 기본 제공, 추가 라이브러리 필요 없음.
- jQuery.ajax: jQuery 라이브러리 필요, 콜백 기반, 더 많은 기능 제공, 복잡한 설정 가능, 자동 JSON 변환 기능.
### 결론
`fetch`는 현대적이고 간단한 비동기 요청 처리를 선호할 때, `jQuery.ajax`는 더 복잡한 AJAX 요청을 처리해야 할 때 유용하다!
'공부기록 > HTML,CSS,JS,JQUERY' 카테고리의 다른 글
[Violation] Added non-passive event listener to a scroll-blocking 'mousewheel' event. 해결하기. (0) | 2024.03.28 |
---|---|
HTML 특정 엘리먼트 내 좌표값 구하기 (0) | 2022.07.14 |