[bug report] Safari pageShow event Only fires once

jscn·2020년 9월 19일
0

Front-end

목록 보기
7/8

버그 내용

사파리 모바일 브라우져에서 <히스토리 복원> 컴포넌트를 구현하던 중, bfcache 때문에 특정 기능이 동작하지 않는 이슈가 있었다.
bfcache를 쓰지 않기엔 서비스 오픈이 얼마남지 않아 리스크가 너무 컸다.

다행히 pageshow, pagehide와 같은 이벤트를 통해 기능 컨트롤이 가능할 듯 하여 적용하였으나, test시 pageshow 이벤트가 한번 호출 되고 난뒤에는 다시 호출 되지 않았다. (미치고 팔짝뛰는 줄...)

구글링만 30분 넘게 한 뒤 bugs.webkit 에 해당 버그가 리포트되었다는 것을 찾았고, 많은 개발자들이 해당 버그를 우회하기 위해 아래와 같은 3가지 방법을 사용하고 있었다.

  1. ios safari에서 bfcache를 사용하지 않는다.
  2. page를 reload 시킨다.
  3. 사용자가 히스토리 백(history back)을 많이 않쓰길 기도하며, 버그가 해결될때까지 걍 존버한다.

한줄 요약

사파리에서 pageshow event가 한번만 호출됨.

재현 시나리오

  1. Go to page A
  2. Click a link to page B
  3. Click the back button (pageshow fires as expected)
  4. Click a link to page B again (or any other page)
  5. Click the back button (pageshow does not fire)

버그 패치 (2020-05-27)

2020-05-27 버그 patched, 기도가 간절했는지 오픈전에 버그가 패치가 되어버렸네?

참조

profile
Frontend engineer

0개의 댓글