일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- github 100mb
- adb connect
- animation
- Failed to compiled
- device in use
- Recoil
- html
- electron-packager
- github pdf
- augmentedDevice
- camera permission
- ffi-napi
- Can't resolve
- nextjs
- react-native
- rolldown
- 티스토리 성능
- ELECTRON
- vercel git lfs
- Git
- camera access
- dvh
- custom printing
- Each child in a list should have a unique "key" prop.
- adb pair
- react-native-dotenv
- npm package
- 이미지 데이터 타입
- github lfs
- silent printing
- Today
- Total
Bleeding edge
새로고침과 창끄기를 구분하는 방법 본문
고민한 이유
최근에 회사에서 채팅로그를 새로고침을 한 경우에는 저장을 하고, 창을 끄는 경우 없애자는 이야기가 나왔었다. 평소에 이런 비슷한 케이스가 있으면 window addeventlistener에서 beforeunload를 이용해서 해결했는데, 문제는 이 방법은 새로고침과 창을 끄는 경우 모두 포함한다.
검색 결과
reload와 close에 대해 검색하다보면 꺼질 때의 position에 따라 처리해라 이런 다양한 글들이 보였었는데,안될꺼같아서 우선 다 제외하고, 둘의 차이에 대해 검색을 하다가 다음과 같은 글을 보았다
https://stackoverflow.com/questions/568977/identifying-between-refresh-and-close-browser-actions
요약
첫 번째가 아닌 두 번째 답글이 더 나은거 같아서 두 번째 글을 적용하였는데, 바로 localStorage가 아니라 sessionStorage를 이용하는 방법이었다. 생각해보면 당연한건데 너무 eventlistener를 이용해서 해결하려고해서 생각을 못했던 것 같다.
해결
이번에는 채팅로그만 관리하면 끝이기 때문에 단순히, sessionStorage.setItem과 sessionStorage.getItem을 beforeunload에 넣어서 마무리를 하였다.
마무리
방법을 알기만 하면 해결할 수 있는 정말 쉬운 방법이었는데, 잘못된 방향으로 생각을 해서 시간을 생각보다 많이 썼던 것 같다. 단순히 시스템적이나 컴퓨팅이 설계된대로 해결할 수 있는 문제가 있으면 그를 이용하여 개발하는 방법도 좋다고 생각이 들었다.
'Javascript' 카테고리의 다른 글
순차적으로 비동기 실행시키기 (0) | 2023.08.13 |
---|---|
환경에 따라 다른 서버로 Request 보내기 (0) | 2023.08.09 |
브라우저에서 로컬파일 여는 방법 (0) | 2023.01.25 |
Queue를 class로 구현해보자. (0) | 2022.10.30 |
클린코드 작성하기 (0) | 2022.07.10 |