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

2024. 1. 10. 00:38·웹 프로젝트/웹 프로젝트

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

 

저작자표시 비영리 변경금지 (새창열림)

'웹 프로젝트 > 웹 프로젝트' 카테고리의 다른 글

웹 사이트 Favicon 등록 및 SEO 최적화  (0) 2024.01.20
GitHub Pages로 배포한 Next.js 프로젝트에 커스텀 도메인 등록(+배포 후 커스텀 도메인 초기화 현상 방지)  (0) 2024.01.20
Next.js 프로젝트 Github Pages 배포  (1) 2024.01.19
[React/Spring boot/MySQL/AWS] 블로그 제작 프로젝트 강의 내용정리 14. Back end 메인화면 기능 구현2 (게시물 검색, 유저 정보 수정)  (0) 2023.06.17
[React/Spring boot/MySQL/AWS] 블로그 제작 프로젝트 강의 내용정리 13. Back end 메인화면 기능 구현 (조회수 Top3, 전체 글 리스트, 인기검색어 GET)  (0) 2023.06.15
[React/Spring boot/MySQL/AWS] 블로그 제작 프로젝트 강의 내용정리 12. Front end 로그아웃 처리  (0) 2023.06.14
'웹 프로젝트/웹 프로젝트' 카테고리의 다른 글
  • GitHub Pages로 배포한 Next.js 프로젝트에 커스텀 도메인 등록(+배포 후 커스텀 도메인 초기화 현상 방지)
  • Next.js 프로젝트 Github Pages 배포
  • [React/Spring boot/MySQL/AWS] 블로그 제작 프로젝트 강의 내용정리 14. Back end 메인화면 기능 구현2 (게시물 검색, 유저 정보 수정)
  • [React/Spring boot/MySQL/AWS] 블로그 제작 프로젝트 강의 내용정리 13. Back end 메인화면 기능 구현 (조회수 Top3, 전체 글 리스트, 인기검색어 GET)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍
        • Programming
        • C | C++
        • Java
        • Python
      • 웹 프로그래밍
        • HTML | CSS
        • JavaScript | TypeScript
        • React
        • Vue.js
        • Next.js
        • Spring & Spring Boot
        • JSP & Servlet
        • DB
      • 웹 프로젝트
        • 웹 프로젝트
        • 🥨스낵몰
        • 👨‍👨‍👧‍👧소셜 가계부
        • 🌜꿈 일기장
        • 🔮포트폴리오 사이트
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼
        • 😺Just Meow It: 고양이의 조언
      • 앱 프로그래밍
        • Flutter
        • Kotlin
      • Problem Solving
        • 백준
        • 프로그래머스
        • SWEA
      • Computer Science
        • 알고리즘
        • 컴퓨터 네트워크
        • 이산수학
      • Developer
        • 후기
        • 자료정리
        • 취업 | 취준
        • 웹개발 교육 프로그램
        • TIL
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    프로젝트
    AWS
    알고리즘
    Jiraynor Programming
    타입스크립트
    자바
    React
    컴퓨터네트워크
    spring boot
    파이썬
    포트폴리오
    자바스크립트
    구현
    리액트
    프로그래머스
    d3
    Next.js
    클론 프로젝트
    플러터
    Til
    뉴렉처
    SWEA
    블로그 제작
    백준
    ZeroCho
    bfs
    공식문서
    mysql
    웹사이트
    강의내용정리
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
스톱워치 프로젝트: localStorage에 스톱워치 시간 저장 및 불러오기
상단으로

티스토리툴바