JS/기초정리

JS 기초 - 비동기통신 실습

줘니(•̀ᴗ•́)و 2023. 1. 20. 14:15
728x90
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src = './JS/jquery-3.6.3.min.js'></script>
</head>
<body>

    <input id="year">
    <button id="movieBtn">데이터 가져오기</button>
    <br>
    <table border="1" id="movieTable">
        <tr>
            <td>순위</td>
            <td>영화명</td>
            <td>개봉일</td>
        </tr>

    </table>

    <script>
        let url = 'http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchWeeklyBoxOfficeList.json?key=f5eef3421c602c6cb7ea224104795888&targetDt=20220606'
        let movieBtn = document.getElementById('movieBtn')
		
        // 데이터 가져오기 버튼을 클릭하면 실행될 로직 시작
        movieBtn.addEventListener('click', () => {
        let year = document.getElementById('year').value
        let url = 'http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchWeeklyBoxOfficeList.json?key=f5eef3421c602c6cb7ea224104795888&targetDt='+ year

        $.ajax({
        	// 1. 어디랑 통신할지(주소)
            url: url,
            // 2. 요청 방식
            type: 'get',
            // 3. 어떤 데이터, 데이터타입을 받을건지, 인코딩 어떻게 할건지 등등 필요한 것
            // 4. 통신 성공 시 실행할 로직
            success: (result) => {
            	// result : 통신 성공 시 응답데이터를 받아오는 매개변수
                let movieArray = result.boxOfficeResult.weeklyBoxOfficeList;
				
                // 데이터를 받아와 변수에 저장할거야
                for (let i = 0; i < movieArray.length; i++) {
                    let rank = movieArray[i].rank
                    let movieName = movieArray[i].movieNm
                    let movieOpen = movieArray[i].openDt
					
                    // 순위, 영화명, 개봉일 테이블 아래에 가져온 테이블데이터 추가하기
                    let tr = document.createElement('tr');
                    document.querySelector('#movieTable').appendChild(tr);
                    
                    let rankCon = document.createElement('td');
                    rankCon.innerHTML = rank
                    document.querySelector('#movieTable').appendChild(rankCon);
                    let MovieNmCon = document.createElement('td');
                    MovieNmCon.innerHTML = movieName
                    document.querySelector('#movieTable').appendChild(MovieNmCon);
                    let MovieOpenCon = document.createElement('td');
                    MovieOpenCon.innerHTML = movieOpen
                    document.querySelector('#movieTable').appendChild(MovieOpenCon);
                } 
            },
            // 5. 통신 실패 시 에러 표시
            error: () => {
            }
        })
    })// 데이터 가져오기 버튼을 클릭하면 실행될 로직 끝
    
    </script>
    
</body>
</html>

 

 

 

728x90

'JS > 기초정리' 카테고리의 다른 글

JS 기초 - 비동기통신  (0) 2023.01.20
JS 기초 - jQuery 기초문법  (0) 2023.01.20
JS 기초 - DOM 속성 / DOM 스타일  (0) 2023.01.17
JS 기초 - DOM이벤트  (0) 2023.01.17
JS 기초 - DOM객체  (0) 2023.01.16