프로그램 실행 시 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