2021.09.03

이짜젠·2021년 9월 3일
0

polling, useEffect

polling을 통해 데이터를 갱신해야하는 페이지가 있다.
polling task등록을 페이지가 렌더링되는 시점인 useEffect에 동작하도록 코드를 작성했다.

polling task 내부적으로는 store에 저장되어있는 값과 서버로부터 가져온 데이터를 비교해서 다를경우 페이지를 갱신하는 작업을 한다.

문제가 없다고 생각을 했지만, 동작이 이상하여 확인해보니 polling task 내부적으로 사용하는 store의 데이터가 최신상태값이 아닌, polling task를 등록한 시점(렌더링 시점)의 데이터 값을 가지고있었다.

객체는 기본적으로 Mutable 하기떄문에 당연히 state또한 메모리 참조값을 통해 접근할것이라 생각했는데, 잘못생각했나보다.

일단 ref의 값은 mutable 하게 접근을 하는듯하여, store의 데이터를 ref에 저장하고polling task에서는 ref에 접근하도록하여 문제는 해결했지만, 정확한 원인은 아직도 모르겠다.

내일 시니어분들께 여쭤봐야겠다.

히스토리스택

히스토리 스택이 안쌓이는 이슈가 있었는데, 한 페이지에 어느정도 머물러야 스택이 쌓이는 듯 하다. 테스트해본결과 페이지 용량에따라 (100 ~ 1500ms) 사이면 스택이 안정적으로 쌓였다.

히스토리스택을 쌓기위해 일정시간을 대기해야하기때문에, 일반적인 페이지에서 redirect 시키기보다 별도의 브릿지페이지를 만들어두고, 이 페이지를 통해서 redirect되도록 작업하는게 좋을 것 같다.
(일반페이지에서 일정시간 머문 후 리다이렉트처리를 하게되면, 사용자가 느끼기에 페이지가 로딩되다가 갑자기 이동되기때문에 동작의 불편함을 느낄 수 있다.)

또하나, 히스토리스택은 쌓이는데 크롬에서 뒤로가기를하면 자꾸 탭으로 가는현상이 있었다.

웹뷰에서 외부 브라우저 띄우기

https://www.burndogfather.com/201

profile
오늘 먹은 음식도 기억이 안납니다. 그래서 모든걸 기록합니다.

0개의 댓글