타이머로 변수값이 달라졌는지 체크해도 괜찮을까요?

우선 상황은 이렇습니다.
웹뷰(JS) , 메인프로젝트 , 서브프로젝트가있는데

웹뷰에서 버튼을 누르면 메인프로젝트로 postMessage를 하고 메인프로젝트는 해당 메세지를 받으면
서브프로젝트의 임의로 만든 eventCapture 변수값을 true로 바꿔줍니다.
서브프로젝트는 mousedown에 eventCapture가 true라면 클릭 한 x,y좌표를 pointX,pointY변수에 저장합니다.

서브에서 메인프로젝트를 참조해서 메인->js로 웹뷰를 통해 결과값을 보내주려고 했는데
이미 메인에서 서브를 참조해서 순환참조 경고창이 뜨더라구요… 그래서 생각해본게
메인에서 eventCapture 를 true로 바꾸고나서 일정시간 일정간격동안 pointX,pointY가 값이 들어왔는지 체크해서 값이 있다면 메인->js로 해당 값을 보내려고했는데 이런식의 구현이 문제가 없는지 궁금합니다.

get,set을 통해 변수값바뀌면 처리 ,델리게이트로 콜백구현 , 해당 부분만 따로 가지고있는 서브2프로젝트를 만들던가 하는 차선의 방법들도 생각해봤는데 익숙치않은 부분이라… 경험자분들의 조언이 필요합니다!!

3 Likes

메인 → 서브 → 메인 부분은
그냥… 메인 페이지의 기능을 모듈로 만들어서 따로 프로젝트로 빼면 되지 않을까 싶습니다.

3 Likes

글만 봐서는 상황을 잘모르겠군요
폴링 방식으로 수집하는것 그렇게 좋은 방식은 아닌것 같고
event 방식 으로 하는것이 좋을것 같긴 한데
델리게이트 콜백 구현이 익숙치 않으셔서 꺼려지시지만
그 방향이 맞지 않을까 생각합니다.
일정시간마다 ? 변수 변화를 감지 한다고 하셨는데? 이것 또 그대로
문제가 많을것 같습니다

3 Likes

음… 아직 너무 중구난방이라 설명이 부족한 것 같습니다. 여러가지 시도를 좀더 해볼게요
답변 감사합니다.

3 Likes

Notifying이 있는 observer 패턴을 구현을 구상해보시는 건 어떠실까요?
이벤트 구현과 비슷하겠네요.

또는,
웹뷰 → 메인도 postmessage를 해 주는데
메인 → 서브는 bool값만 변경하시는 이유가 있으실까유?
postmessage할때 바로 xy 좌표를 넘기면 부작용이 심한가용?

1 Like