2017-09-18 6 views
0

3 개의 모듈을 포함하는 하나의 GWT 애플리케이션이 있습니다. 사용자는 버튼을 사용하여 한 모듈에서 다른 모듈로 전환 할 수 있습니다.기존 브라우저 새로 고침 사용자가 GWT에서 열려고하면 탭이 나타 납니까?

다음과 같은 방법으로 모듈을 액세스 할 수있는 사용자 : 사용자는 아래와 같이 브라우저에 URL을 입력 할 수 있습니다

1) : 예 : 한 번 버튼을 3 개 개의 모듈 중 하나를 클릭 http://localhost:1045//app1 2) 위의 스텟 1을 사용하여 이미 열었습니다.

버튼 클릭시 : Window.open ("http://localhost:1045//app2", "app2Window", ""); 그러면 app2가 다른 탭에서 열립니다.

지금 브라우저에서 모듈 URL을 입력하여 app1을 연 다음 버튼을 클릭하여 app2 새 탭을 엽니 다.

두 개의 탭 (app1, app2)이있는 두 개의 탭이 있습니다.

지금 실제 문제는 : 사용자가 버튼을 클릭

경우 "APP2"와 2 탭 ("APP1"를 엽니 다). 기존 탭에 'app1'을로드하는 대신 새 탭이 열립니다.

Steps: 
As per the above mentioned steps: 
1) User can open "app1" by entering the url in the browser(http"//localhost:1045/app1) 
2) User clicks on button in the opened "App1" to open "App2" in the new tab. 
3) From the "App2", the user can open "App3" by clicking on the button. 
4) Now if the user clicks on the button in "App3" to open "App2" which is alreay opened. that time 
new tab wont be opened the existing tab will be reloaded. 

따라서 위에서 설명한 시나리오가 가능합니다. 하지만 여기서 문제는 브라우저가 "URL 입력"을 사용하여 열어 본 (탭) 모듈을 다시로드 할 수 없다는 것입니다.

새 탭을 열지 않으려면 어떻게해야하나요? 나는 창문 이름이 탭이 열려 있는지 여부를 구분할 것입니다 봤어? 그러나 사용자가 브라우저에 URL을 입력 할 때 창 이름을 지정하는 방법을 찾지 못했습니다?

어떻게이 GWT를 얻을 수 있습니까?

답변

0

Window.Location.assign (String url)?

0

GWT는 Javascript가 할 수있는 모든 것을 할 수 있으며 JS에서는 불가능한 것을 할 수 없습니다.

링크를 열려고하는 탭을 선택하여 (discussion here) 선택할 수없는 것처럼 보입니다.

당신이 할 수있는 일은 3 개의 모듈을위한 컨테이너를 직접 만들거나 3 개의 모듈 모두를 하나의 GWT 어플리케이션으로 컴파일하여 쉽게 전환하고 결코 다시로드 할 수 없게하는 것입니다.

편집 : GWT에 대한 중대한 것의

하나는 한 페이지 응용 프로그램을 작성하고 아무런 문제없이 기능, 화면 또는 응용 프로그램 사이를 전환 할 수 있다는 것입니다. 사실 GWT는 MVP 구현을 잘 수행하고 있으며 이러한 목적으로 사용됩니다 (MVP examples).

다중 창 (또는 다중 탭) 디자인을 포기하고 GWT 특성을 채택하는 것이 좋습니다. 처음에는 고통 스러울 것이지만 장기간에 걸쳐이 디자인 선택은 응용 프로그램을보다 견고하게 만들고 코드를 개선합니다.

+0

감사합니다. @Luigi, 업데이트 된 질문을 살펴보십시오. –

관련 문제