예를 들어서 게시물 A를 읽을 때 댓글이 10개였다고 가정해보면
내가 본 글 데이터에는 댓글이 10개라고 기록이 됩니다.
A 글에서 글과 댓글을 본 후 댓글을 작성하면서 댓글이 대충 15개로 늘어나는 것까지 보았다고 가정해보면
내가 본 글 데이터에는 정상적으로 15개로 댓글이 변경되어 저장됩니다. (오늘 버그픽스로 수정된 부분)
그런데 이 상황에서 다른 링크(게시물 목록이나 다른 글 등)를 봤다가, 다시 뒤로가기를 눌러 브라우저 히스토리에 저장된 A 게시물을 거쳐서 빠져나가면,
뒤로가기로 봤을 땐 게시물 15개인 상황을 보여주는게 아니라, 캐시에 저장된 댓글 10개인 모습을 보여줍니다.
문제는 이렇게 뒤로가기 하면서 10개인 캐시 데이터를 잠깐 보면서 나갈 때, 내가 본 글 데이터(MY_VIEW_LIST)에도 캐시데이터인 댓글 수 10개를 저장해버리는 버그가 있네요.
위는 그냥 글 하나만 예를 든거고,
또다른 예로는 그냥 무작정 뒤로가기 연타를 해서 이전에 본 글들의 과거 캐시데이터를 죄다 훑어버리는 상황에서도
댓글 숫자가 낮았던 버전의 글들을 한번씩 보고 가죠.
이러면 봤었던 모든 글들의 댓글 데이터가 잘못된 값으로 덮어씌우기 됩니다.
게시물 처음 들어가서 내가 본 글 데이터 저장할 때
window.performance.navigation.type 값을 체크해서 2가 나오면, MY_VIEW_LIST 데이터를 업데이트 하지 않는 방식으로 빠르게 해결 될 것 같아요.
물론 댓글 새로고침 할 때는 새로 댓글 데이터를 받아오니 window.performance.navigation.type 값 체크하지 말고 저장해야겠구요.