윈도우 메시지 처리 순서 문제?? 뭐 이런거 같은데
이벤트 처리가
버튼 이벤트 처리 -> document_completed 이벤트 처리
이런 식으로 되네
그러니까
버튼 이벤트에서
browser.navigate 함수를 여러 url로 할 경우에
원래 개발자가 기대하는 거는
browser.navigate(url1) -> document_completed 이벤트 처리(url1) ->
browser.navigate(url2) -> document_completed 이벤트 처리(url2) ->
browser.navigate(url3) -> document_completed 이벤트 처리(url3) -> ...
이런 식으로 되기를 기대하는데 실제 윈도우가 이벤트 처리하는 거는
버튼 이벤트 처리(중간에 이벤트로 분기하지 않음) -> 버튼 이벤트 처리 완료 후 -> document_completed 이벤트 처리
이런식으로 되네
따라서 결론은
browser.navigate(url1);
browser.navigate(url2);
browser.navigate(url3);
이런식으로 하면 url1, url2, url3 에 대해 각각 document_completed 이벤트가 처리되는 것이 아니라
가장 나중에 실행한 browser.navigate(url3) 만 적용되서 url3에 대한 document_completed 이벤트만 처리된다 이 말임
근데 이거 어떻게 해야 됨?? 각각에 url에 대해 다 document_completed 이벤트가 처리되어야 하는데???
첨부터 감은 잡고 있었지만 니 평소 말투가 맘에 안들어서 입다물고 있었는데 시끄러워서 훈수는 둔다.
방법은 두 가지일 것으로 보인다. document_completed hander 안에서 다음 navigate 를 거는게 된다면 릴레이하면 되고,
그게 아니면 document_completed handler 의 처리가 끝날때 까지 다음 navigate 를 hold 시키는것. ( 동기화 )
뭐 덤으로 각각을 별도의 쓰레드로 나누는 방법도 있긴하겠지.
browser 의 인스턴스를 여러개 생성하는 방법도 가능할 것 같고.