2017-09-18 4 views
0

私は3つのモジュールを含む1つのGWTアプリケーションを持っています。ユーザーはボタンを使用して、あるモジュールから別のモジュールに切り替えることができます。既存のブラウザをリロードするユーザーがGWTで同じものを開くときにタブを使用しますか?

次の方法でモジュールにアクセスできるユーザー:ユーザーは以下のようにブラウザにURLを入力することができます

1): 例:一度ボタンの上に3つのモジュールのいずれかをクリックするhttp://localhost:1045//app1 2)上記のstpe 1を使用して既に開いています:

オンボタンクリック:Window.open( "http://localhost:1045//app2"、 "app2Window"、 ""); したがって、app2が別のタブで開かれます。

今すぐユーザーがブラウザにモジュールurlを入力してapp1を開き、ボタンをクリックしてapp2 を新しいタブに開きます。

2つのタブ(app1、app2)を持つ2つのタブがあります。

は今、実際の問題がある:ユーザーがボタンをクリック

場合は、「APP2」と第二のタブで(「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つのモジュールすべてを1つのGWTアプリケーションにコンパイルして、簡単に切り替えてリロードしないようにすることができます。

EDIT:GWTの優れた点の

一つは、あなたが1ページ-アプリケーションを作成し、問題なく機能し、画面やアプリケーションを切り替えることができるということです。実際にGWTにはMVP実装があり、この目的は十分に機能し、この目的に役立ちます(MVP examples)。

私は、マルチウィンドウ(またはマルチタブ)デザインを放棄し、GWTの性質を採用することを強くお勧めします。最初は痛いでしょうが、長期的に見ると、このデザインの選択は、アプリケーションをより強固にし、コードを改善します。

+0

ありがとう@Luigi、更新された質問をご覧ください。 –

関連する問題