본문 바로가기
#IT 개발노트

JavaScript(자바스크립트) 브라우저 객체 2탄

by 꾸미라기 2024. 2. 2.
반응형
SMALL

자바스크립트 브라우저 객체 이어서 설명하도록 하겠습니다.

 

1. 브라우저 객체 사용법

(5) History 객체

History 객체는 브라우저의 세션 히스토리를 조작하는 데 사용되는 자바스크립트 객체입니다. 이 객체는 window.history를 통해 접근할 수 있습니다. History 객체를 사용하면 브라우저의 이전 및 다음 페이지로 이동하거나, 히스토리 스택을 조작할 수 있습니다.

back() : 브라우저의 히스토리에서 한 페이지 이전으로 이동합니다.
forward() : 브라우저의 히스토리에서 한 페이지 다음으로 이동합니다.
go(delta) : 히스토리에서 delta에 지정된 페이지 수만큼 이동합니다. delta가 양수면 앞으로, 음수면 뒤로 이동합니다.
pushState(state, title, url) : 새로운 상태를 히스토리 스택에 추가하며, 현재 페이지의 URL을 변경합니다.
replaceState(state, title, url) : 현재 상태를 히스토리 스택에서 교체하며, 현재 페이지의 URL을 변경합니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>History 객체 사용 예제</title>
</head>
<body>

<script>
    // 이전 페이지로 이동
    function goBack() {
        window.history.back();
    }

    // 다음 페이지로 이동
    function goForward() {
        window.history.forward();
    }

    // 히스토리에서 특정 페이지로 이동
    function goToPage(delta) {
        window.history.go(delta);
    }

    // 새로운 상태를 히스토리에 추가
    function addHistory() {
        const state = { page: "newPage" };
        const title = "새로운 페이지";
        const url = "/new-page";
        window.history.pushState(state, title, url);
    }

    // 현재 상태를 히스토리에서 교체
    function replaceHistory() {
        const state = { page: "replacedPage" };
        const title = "교체된 페이지";
        const url = "/replaced-page";
        window.history.replaceState(state, title, url);
    }
</script>

<button onclick="goBack()">이전 페이지로</button>
<button onclick="goForward()">다음 페이지로</button>
<button onclick="goToPage(-2)">두 페이지 뒤로</button>
<button onclick="addHistory()">새로운 상태 추가</button>
<button onclick="replaceHistory()">현재 상태 교체</button>

</body>
</html>


(6) XMLHttpRequest 객체

XMLHttpRequest 객체는 웹 페이지와 웹 서버 간에 데이터를 주고받기 위해 사용되는 자바스크립트 객체입니다. 이 객체를 사용하면 비동기적으로 서버와 통신하여 데이터를 가져오거나 전송할 수 있습니다. 주로 AJAX (Asynchronous JavaScript and XML) 기술에서 사용되며, 최근에는 Fetch API가 더 표준적이고 강력한 대안으로 사용되기도 합니다.

open(method, url, async) : 요청을 초기화합니다.
 method : HTTP 메서드 (GET, POST 등)
 url : 요청을 보낼 URL
 async : 비동기 여부를 나타내는 불리언 값
send(data) : 서버로 요청을 전송합니다.
 data : 요청에 포함될 데이터 (POST 요청 시)
setRequestHeader(header, value) : HTTP 헤더를 설정합니다.
 header : 헤더의 이름
 value : 헤더의 값
onreadystatechange : 요청 상태가 변경될 때 호출되는 이벤트 핸들러를 설정합니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>XMLHttpRequest 객체 사용 예제</title>
</head>
<body>

<script>
    // XMLHttpRequest 객체 생성
    const xhr = new XMLHttpRequest();

    // 요청을 초기화
    xhr.open('GET', 'https://jsonplaceholder.typicode.com/posts/1', true);

    // 요청 상태가 변경될 때의 이벤트 핸들러 설정
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4 && xhr.status === 200) {
            // 요청이 완료되고 성공적으로 처리된 경우
            const responseData = JSON.parse(xhr.responseText);
            console.log('서버 응답:', responseData);
        }
    };

    // 요청 헤더 설정 (선택 사항)
    // xhr.setRequestHeader('Content-Type', 'application/json');

    // 요청 전송
    xhr.send();
</script>

</body>
</html>


(7) Console 객체

Console 객체는 자바스크립트에서 콘솔(console)에 메시지를 출력하고 디버깅을 위한 다양한 도구 및 메서드를 제공하는 객체입니다. 이 객체는 웹 브라우저의 개발자 도구 콘솔에 로그를 출력하거나 디버깅 정보를 표시하는 데 사용됩니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Console 객체 사용 예제</title>
</head>
<body>

<script>
    // 간단한 로그 출력
    console.log("일반 로그 메시지");

    // 정보 메시지 출력
    console.info("이것은 정보 메시지입니다.");

    // 경고 메시지 출력
    console.warn("경고! 이 작업은 조심해야 합니다.");

    // 오류 메시지 출력
    console.error("에러 발생!");
</script>

</body>
</html>
반응형