본문 바로가기
웹 프로그래밍/웹 프로젝트

스톱워치 프로젝트: localStorage에 스톱워치 시간 저장 및 불러오기

by 청량리 물냉면 2024. 1. 10.
반응형

프로그램 실행 시 localStorage가 비어있는지 확인하고, 비어있지 않다면(저장된 데이터가 있다면) 데이터를 불러오게 하였다. 데이터를 변경하면서(초기 리셋값은 모두 0) 화면에 보여지는 값도 변경해 주었다. 

const browserTimeData = localStorage.getItem("stopwatch");
if (browserTimeData !== null) { //localStorage에 데이터가 저장되어 있다면
  const parsedData = JSON.parse(browserTimeData);	//JSON 형태로 얻어온 데이터를 해석한다.
  hour = parsedData[0];
  min = parsedData[1];
  sec = parsedData[2];
  tenMillisec = parsedData[3];

  appendHour.textContent = String(hour).padStart(2, "0"); //2자리. 0으로 앞자리 채우기
  appendMin.textContent = String(min).padStart(2, "0");
  appendSec.textContent = String(sec).padStart(2, "0");
  appendTens.textContent = String(tenMillisec).padStart(2, "0");
}

 

 

stop 버튼을 누를 때마다 시간을 localStorage에 저장하게 하였다. 

//stop
stop_btn.onclick = function () {
  window.clearInterval(intervalId); //setInterval이 반환한 id를 인자로 넣으면 그 id를 가진 setInterval이 동작이 멈춘다.
  stop_btn.style.display = "none";
  start_btn.style.display = "";
  lap_btn.style.display = "none";
  reset_btn.style.display = "";

  localStorage.setItem(	//localStorage에 데이터 저장
    "stopwatch",
    JSON.stringify([hour, min, sec, tenMillisec])
  );
};

 

 

reset 버튼을 누를 때는 localStorage에 저장된 데이터를 삭제하였다.

reset_btn.onclick = function () {
  window.clearInterval(intervalId);
  document.getElementById("lap_record").style.visibility = "hidden";
  for (let i = 0; i < lap_num - 1; i++) {
    table.deleteRow(-1);
  }
  hour = 0;
  min = 0;
  sec = 0;
  tenMillisec = 0;
  appendHour.textContent = "00";
  appendMin.textContent = "00";
  appendSec.textContent = "00";
  appendTens.textContent = "00";
  lap_num = 1;
  document.title = "timeqlife - Stopwatch";

  localStorage.removeItem("stopwatch");
};

 

 

localStorage

  • setItem(key, value) – 키-값 쌍 보관
  • getItem(key) – 키에 해당하는 값 받아오기
  • removeItem(key) – 키와 해당 값 삭제
  • clear() –  도메인 내의 localStorage 값 삭제
  • key(index) – 인덱스(index)에 해당하는 키 받아오기
  • length – 저장된 항목의 개수

 

 

참고 자료

localStorage

 

Window: localStorage property - Web APIs | MDN

The localStorage read-only property of the window interface allows you to access a Storage object for the Document's origin; the stored data is saved across browser sessions.

developer.mozilla.org

 

 

localStorage와 sessionStorage

 

ko.javascript.info

 

 

[Javascript] localStorage 사용법 (읽기, 쓰기, 삭제, 키목록 등)

이번에는 localStorage 사용법을 정리해보았습니다. localStorage란? localStorage에 아이템 추가, 읽기 localStorage에 객체, 배열 저장하기 localStorage에 값 삭제하기 localStorage에 값 전체 삭제하기 localStorage의

hianna.tistory.com

 

localStorage 데이터 형식 변환 (JSON.stringify(), JSON.parse())

 

 

javascript localstorage 저장/JSON.stringify(), JSON.parse()

js 에서 localstorage로 저장 object -> string 으로 변환하는 방법은 JSON.stringify( object name ) 을 해주면 된다 js에서 localStorage.setItem()을 할 때, localStorage는 js의 오브젝트를 저장할 수 없다. object -> string 바

studyingych.tistory.com

 

자리수만큼 특정문자 채우기

 

[js] 문자열 앞 혹은 뒤에 자리수만큼 특정 문자(0, 공백) 채우기

JavaScript 문자열 앞 혹은 뒤에 자리수만큼 특정 문자(0, 공백) 채우기 문자열의 기본 자릿수를 맞추도록 앞이나 뒤에 특정 문자(0, ' ')을 채우고 싶다면 padStart와 padEnd 함수를 사용하면 된다. padStart

computer-science-student.tistory.com

 

반응형