티스토리 뷰
IOS에서 페이지가 오픈되었을 때, PageShow event가 실행되는데 이때 bfcache로 페이지가 열렸는지 아니면 아예 처음 새롭게 열린건치 체크할 수 있는 방법이 있다.
바로 다음과 같은 속성을 이용하면 된다.
https://developer.mozilla.org/en-US/docs/Web/API/PageTransitionEvent/persisted
PageTransitionEvent.persisted - Web APIs | MDN
The persisted read-only property indicates if a webpage is loading from a cache.
developer.mozilla.org
addEventListener('pageshow', (event) => {
if (event.persisted) {
console.log('BFCahe 복원');
}
else {
console.log('처음 열림');
}
});
* 번외로 어디선가 본 코드에서는 persisted 말고도 navogator가 몇 번인지 함께 체크했던 것 같다. 정확히 어떤건지 기억이 잘 안나서 검색를 상당히 광범위하게 했더니 아직 찾을 수가 없다-!
https://hyermione.tistory.com/126
사파리와 파이어폭스 그리고 크롬의 차이점은 bfcache이다. (2탄-상세기록)
bfcache란 js heap까지 포함하여 페이지 전체를 다 캐시로 저장한다. 고로 전체 페이지의 정보가 메모리에 저장되어 있기 때문에 사용자가 이전 페이지로 복귀했을 때, 메모리에 저장된 정보를 노출
hyermione.tistory.com
https://hyermione.tistory.com/129
모바일 사파리에서는 pagehide/show를 사용할 것
모바일 safari에서는 beforeunload 대신에, pagehide 함수가 사용된다. - pagehide MDN https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event Window: pagehide event - Web APIs | MDN The pagehide event is sent to a Window when the
hyermione.tistory.com
'JavaScript > JS' 카테고리의 다른 글
노드의 class 변경을 감지하는 방법 (Mutation Observer) (0) | 2022.10.17 |
---|---|
모바일 사파리에서 overflow 버그 해결하기 (0) | 2022.09.20 |
Intersection Observer API의 개념 및 사용법 / 고속 스크롤에 대한 이슈 (0) | 2022.09.15 |
페이지 탭 이동 혹은 최소화 등을 감지하는 visibilitychange event (0) | 2022.09.13 |
history scrollRestoration으로 히스토리 복구 시, 자꾸 최상단으로 올라가는 버그를 무찌르자. (0) | 2022.09.06 |
- Total
- Today
- Yesterday
- 깃명령어
- Git
- js테스트
- js
- 센트리모니터링
- vue
- CSS
- sentry
- 모바일사파리
- 김민태
- 리코일
- 자바스크립트
- 사파리
- 센트리
- reacthook
- TIL
- 리액트상태관리
- npm
- react
- 크롬
- storybookUI
- 리액트훅
- gitRebase
- 프론트엔드
- javascript
- frontend
- BFCache
- 프론트앤드
- 리액트
- 깃
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |