프로그래밍/JAVA Script

JAVA Script수업 8강 - AJAX와 비동기 처리: 실시간 데이터 처리의 핵심 기술

월횽 2024. 6. 5. 06:30
728x90
반응형
SMALL

 

AJAX란 무엇일까요?

AJAX(Asynchronous JavaScript and XML)는 웹 애플리케이션에서 서버와 비동기적으로 데이터를 주고받을 수 있는 기술입니다. AJAX를 사용하면 페이지를 새로고침하지 않고도 서버로부터 데이터를 가져오거나 서버에 데이터를 보낼 수 있습니다. 이를 통해 사용자 경험을 향상시키고, 웹 애플리케이션의 성능을 최적화할 수 있습니다.

 

 

 

AJAX의 작동 원리

AJAX는 다음과 같은 과정으로 작동합니다:

1. 클라이언트가 서버에 요청을 보냅니다.
2. 서버는 요청을 처리하고 데이터를 반환합니다.
3. 클라이언트는 서버로부터 받은 데이터를 처리하여 웹 페이지에 업데이트합니다.

 

 

반응형

 

 

XMLHttpRequest 객체

AJAX의 핵심은 XMLHttpRequest 객체입니다. 이 객체를 사용하면 비동기적으로 데이터를 요청하고, 서버 응답을 처리할 수 있습니다. 다음은 XMLHttpRequest 객체를 사용한 예제입니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>AJAX 예제</title>
</head>
<body>
    <h1>AJAX와 비동기 처리</h1>
    <button id="loadDataBtn">데이터 불러오기</button>
    <div id="result"></div>

    <script>
        document.getElementById('loadDataBtn').addEventListener('click', function() {
            // XMLHttpRequest 객체 생성
            var xhr = new XMLHttpRequest();
            // 요청 초기화
            xhr.open('GET', 'data.json', true);
            // 요청 상태가 변할 때마다 호출될 함수 정의
            xhr.onreadystatechange = function() {
                if (xhr.readyState === 4 && xhr.status === 200) {
                    // 서버 응답을 처리하여 웹 페이지에 업데이트
                    document.getElementById('result').innerHTML = xhr.responseText;
                }
            };
            // 요청 보내기
            xhr.send();
        });
    </script>
</body>
</html>

 

예제 설명

위의 예제는 버튼을 클릭하면 서버로부터 data.json 파일을 요청하고, 그 결과를 웹 페이지에 표시하는 간단한 AJAX 예제입니다.

1. XMLHttpRequest 객체를 생성합니다.
2. xhr.open('GET', 'data.json', true); 코드를 통해 GET 요청을 초기화합니다. 세 번째 인자인 true는 비동기 처리를 의미합니다.
3. xhr.onreadystatechange 속성에 함수를 할당하여 요청의 상태가 변할 때마다 호출되도록 합니다.
4. 요청 상태가 완료(xhr.readyState === 4)되고, 응답이 성공적(xhr.status === 200)이면, 서버 응답을 웹 페이지의 result 요소에 업데이트합니다.
5. xhr.send(); 메서드를 호출하여 서버에 요청을 보냅니다.

 

 

 

 

AJAX의 장점

· 빠른 응답 시간: 페이지 전체를 새로 고침하지 않고 필요한 데이터만 갱신하므로 빠른 응답이 가능합니다.
· 서버 부담 감소: 필요한 데이터만 요청하고 받으므로 서버의 부담이 줄어듭니다.
· 향상된 사용자 경험: 사용자가 끊김 없이 웹 애플리케이션을 이용할 수 있어 사용자 경험이 향상됩니다.

 

 

 

Fetch API를 사용한 비동기 처리

최신 브라우저에서는 XMLHttpRequest 대신 Fetch API를 사용하는 것이 일반적입니다. Fetch API는 더 간결하고 사용하기 쉽습니다. 다음은 동일한 예제를 Fetch API로 구현한 것입니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Fetch API 예제</title>
</head>
<body>
    <h1>Fetch API와 비동기 처리</h1>
    <button id="loadDataBtn">데이터 불러오기</button>
    <div id="result"></div>

    <script>
        document.getElementById('loadDataBtn').addEventListener('click', function() {
            fetch('data.json')
                .then(response => response.text())
                .then(data => {
                    document.getElementById('result').innerHTML = data;
                })
                .catch(error => {
                    console.error('Error:', error);
                });
        });
    </script>
</body>
</html>

 

예제 설명

1. fetch('data.json')를 호출하여 서버에 요청을 보냅니다.
2. 응답 객체의 text() 메서드를 호출하여 응답 데이터를 텍스트로 변환합니다.
3. 변환된 데이터를 웹 페이지의 result 요소에 업데이트합니다.
4. catch 메서드를 사용하여 오류를 처리합니다.

AJAX와 비동기 처리는 현대적인 웹 애플리케이션에서 필수적인 기술입니다. 이를 통해 사용자 경험을 크게 향상시킬 수 있으며, 서버와 클라이언트 간의 효율적인 데이터 통신을 구현할 수 있습니다. 이제 AJAX와 비동기 처리의 개념과 활용 방법을 이해했으니, 이를 활용하여 더욱 인터랙티브한 웹 애플리케이션을 개발해보세요.

 

 

- 이전 수업 목록

 

 

 

 

 

 

728x90
반응형
LIST