–
검색기능이 추가된 무한 스크롤을 구현해보자
01 구조작성
html/css
02 script 작성
API 를 연동하여 데이터를 서버에서 받는다 데이터의 일부만 화면에 출력하고 스크롤이 내려가면 데이터를 추가로 출력한다.
03 methods
사용된 주요 메서드
fetch
🔑 XMLHttpRequest 객체의 최신버전으로 네트워크 통신을 지원하는 객체이다 (HTTP 요청 전송 기능을 제공하는 Web API) |
fetch(url주소 : string, fetch 설정 : object) //Promise 객체 반환 |
fetch 특징
- 비동기 처리
- promise 객체 반환
js
//fetch는 네트워크 통신할 때 사용하는 함수로 비동기 처리를 할 수 있습니다.
const result = fetch('URL 주소');
console.log(result) //fetch 함수는 Promise 객체를 반환합니다.
result.then(function(){
//여기 작성된 코드는 비동기 처리가 완료된 후 동작합니다.
})
result.catch(function(){
//여기 작성된 코드는 비동기 처리가 완료됐으나 에러가 발생했을 때 동작합니다.
})
//아래와 같이 합쳐서 사용할 수 있습니다
fetch('URL 주소')
.then(function(response){ //then 함수에는 callback 함수를 입력합니다.
//응답을 받았을 때 수행하는 코드를 작성
//성공적으로 실행됐다면 response에는 fetch의 결과가 들어있습니다.
})
.catch(err => { //catch 함수에는 callback 함수를 입력합니다.
//비동기 작업에 실패했을 때 수행하는 코드 작성
//err에는 에러 관련 정보들이 들어있습니다.
})
console.log('네트워크 통신이 끝날 때 까지 기다리지 않고 바로 실행되요 1');
console.log('네트워크 통신이 끝날 때 까지 기다리지 않고 바로 실행되죠 2');
js
const url = 'https://3c2f8e74-58e5-4eab-8310-325f6dc34572.mock.pstmn.io/test';
fetch(url).then(function(response){
//통신후 결과를 json 객체로 변환
return response.json() //Promise 객체를 반환
}).then(function(result){
//result에는 통신결과가 저장
console.log(result);
}).catch(function(err){
//err에는 에러가 났을 때 관련 정보 저장
//에러 미검출시 실행안됨
console.log(err)
})