하이브리드 앱 개발에서 location.href 사용 후 뒤로가기 무한루프에 빠진 이유

 하이브리드 앱을 개발하면서 단순한 페이지 이동 로직을 만들었다. 버튼을 누르면 location.href 로 다른 페이지로 이동하고, 이전 버튼을 누르면 다시 돌아오는 구조였다. 웹에서는 이전 버튼을 자주 사용하지 않기 때문에 이 부분을 깊게 테스트 해 본적이 없다. 그런데 하이브리드 앱(WebView)에서 테스트하는 순간 문제가 바로 드러났다. 뒤로가기를 누르면 이전 페이지로 돌아가는 것이 아니라 같은 페이지를 계속 반복하면서 무한루프처럼 동작하기 시작했다. 처음에는 WebView 문제라고 생각했다. 하지만 원인은 location.href 와 히스토리 스택 구조였다. location.href 로 이동할 때마다 히스토리에 페이지가 계속 쌓이고 뒤로가기를 눌렀을 때 페이지가 다시 로드되면서 이동 스크립트가 또 실행되는 구조가 만들어진 것이다. 흐름은 이렇게 반복된다. A 페이지 → location.href → B 페이지 B 페이지 → 뒤로가기 → A 페이지 A 페이지 로드 → location.href 실행 → B 페이지 이 과정이 계속 반복되면서 하이브리드 앱에서는 뒤로가기 무한루프가 발생한다. 웹에서도 발생하는 문제지만 하이브리드 앱에서는 시스템 하단의 뒤로가기 버튼이 존재하기 때문에 이 문제가 훨씬 쉽게 드러난다. 특히 Android 물리 백버튼이나 iOS 제스처 뒤로가기와 결합되면 사용자는 앱이 고장난 것처럼 느끼게 된다. 해결 방법은 간단하다. 첫 번째는 location.href 대신 히스토리를 남기지 않는 location.replace 를 사용하는 것이다. location . replace( 'pageB.php' ); 이렇게 하면 히스토리가 쌓이지 않아 뒤로가기 루프가 발생하지 않는다. 두 번째는 자동 이동 로직이 한 번만 실행되도록 조건을 추가하는 방법이다. if (!sessionStorage.getItem('moved')) { sessionStor...

페인트커피앤바 은평 본점(브런치카페 & 디저트)

 요리사 남편으로 둔 절대 미각녀 친구와

은평구 맛집으로 브런치 즐기러 갔습니다 ^^

위치 찾기가 좀 애매했지만 그래도 늦지 않게 도착!


언덕이 있어서 자전거 타고 오다가 헉헉 좀 힘드네요 ^^;;

녹번역 3번 출구에서 찾으셔도 되지만 

은평구 세무서 또는 응암1동 주민센터로

찾아오시는게 길 아시는 분은 빠른 것 같아요. 

세무서 사거리에 스벅이랑 우리은행 사잇길로 올라오면 되요 ^^

헤매실 것 같으면 네이버 길찾기 앱 이용 필수 ㅎㅎㅎㅎ

커피 맛있는 곳이라 추천 받았으니

커피는 기본으로 꼭!! 산미 있는 것 추천요~


영수증도 이뿌죵? ㅋ


입구 찾기가 좀 힘들어요

윗층 올라가지 마시고 왼쪽 테라스 쪽으로 돌아 들어가면 입구가 나와요


 저 입구로 들어오셔야 카운터가 보입니다

주문하시고 매장안에 구경 꼭 하세요

아기자기한 소품들이 볼만해요^^


본격적으로 음식이 나옵니다


수제 저염 잠봉과 루꼴라가 가득한 크림 파스타


라구 파스타


잠봉프로마쥬는 프렌치 바게트에 화이트 치즈,

수제 저염 잠봉을 넣어서 깔끔한 맛이에요

고다치즈, 로메인, 바질페스토를 호밀빵으로 

깜싼 토고바 샌드위치

전체적으로 깔끔하면서도 정갈한 맛입니다

그냥 가기 아쉬워서 커피 3종 세트 주문하니 서비스 주셨어요 ㅎㅎ

맛있게 수다 떨고 눈을 즐겁게 해 주는 곳

페이트커피앤바!

을지로도 있다는데 멀리 안 가서 너무 좋다

동네에서 이색적인 브런치 카페 생각보다 가까운 곳이었네요

조금만 찾기 쉬운 곳에 있으면 하는 아쉬움이 남지만...

쉿!! 아는 사람만 아는 ㅎㅎㅎ

그래도 이 곳에 오셨으니 함께 해요~

페인트커피앤바 은평 본점

쿠폰 있으니 꼭 챙겨가세요~

이벤트인 듯 해요. 기간이 있는 것 보니... ㅎ


댓글