回答編集履歴

4

追記

2017/12/19 05:29

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -1,3 +1,13 @@
1
+ 追記3:すみません、追記2が自分の舌足らずのため伝わっていないようですので補足させてください。
2
+
3
+
4
+
5
+ 追記2の前提は、2つ目以降のJNLPがたたかれた際に単にアプリ起動を抑止するのではなく「最初に起動したアプリ内で全てのJNLP要求を処理する」という前提でした。それを行うためにSingleInstanceListenerが使えるという想定です。
6
+
7
+
8
+
9
+ ---
10
+
1
11
  追記2:質問コメントでの以下に対する追記です。
2
12
 
3
13
 

3

追記

2017/12/19 05:29

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -1,4 +1,22 @@
1
- 訂正下記「実際に通常ブラウザーでは動くよう見えまね。動いて当然な気はしまが・・・」と言ってしまいましたがこれは誤り・認識不足かも知れません
1
+ 追記2質問コメントでの以下る追記です。
2
+
3
+
4
+
5
+ > 現在、SingleInstanceServiceとして実装されており...複数のStageを表示し、それぞれ独立に実行するようにするというのが少しイメージが沸いてない...
6
+
7
+
8
+
9
+ その方式を採りJNLPアプリケーション起動ごとに複数のStage(ウィンドウ)を表示する場合、各々のStageは利用者からみて「独立したアプリケーションであるかのような振る舞いをすると想定しました。例えばStageのスタイルをデフォルトのStageStyle.DECORATEDとした場合、ウィンドウにはOS標準の操作デコレーションが付きますね?Windowsであれば右上の「×」ボタンを押すと画面を閉じることができますが、Stageのデフォルト実装ではこのとき「アプリケーションの終了」動作になるため複数のStageが全て消えアプリケーション全体が終了してしまいます。
10
+
11
+
12
+
13
+ その振る舞いは期待通りではないだろうと思います。そこで「×」ボタンクリックでは当該Stageのみ閉じて他のStageの動作は継続するよう配慮が必要だろうと考えました。また単純なアプリケーションの場合、アプリケーション全体の共通情報をアプリケーションクラスに置くことができますが、本件の場合だとそうはできず、各Stageに対応した適切な場所に独立して管理しておく必要もあるでしょう。質問コメントに書いた「複数のStageを独立に実行」はこうしたことを指したつもりでした。
14
+
15
+
16
+
17
+ ---
18
+
19
+ 訂正1:下記で「実際に通常のブラウザーでは動くように見えますね。動いて当然な気はしますが・・・」と言ってしまいましたがこれは誤り・認識不足かも知れません。
2
20
 
3
21
 
4
22
 
@@ -13,6 +31,8 @@
13
31
  複数プロセスでlocalStorageが取得できるような使い方が可能かどうかの情報は残念ながら得られていませんが(**あくまで個人的な推測では**)複数プロセスがある場合は片方でしかlocalStorageインスタンスが取得できない仕様である可能性も捨てきれない気がしました。
14
32
 
15
33
 
34
+
35
+ 元の回答
16
36
 
17
37
  ---
18
38
 

2

訂正

2017/12/19 02:26

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -1,3 +1,21 @@
1
+ 訂正:下記で「実際に通常のブラウザーでは動くように見えますね。動いて当然な気はしますが・・・」と言ってしまいましたがこれは誤り・認識不足かも知れません。
2
+
3
+
4
+
5
+ 例えばLinuxでxwininfo/xpropを用いて調べる限り、firefoxを用いて2つウィンドウを開いたとき、実際には単一のプロセスで2つのウィンドウを開いていました。WindowsでProcess Exploreというツールを使ってfirefoxの2つのウィンドウのオーナープロセスを調べると同一のプロセス(firefoxのプロセスツリーの一番上の親?)になっているように思えました。この結果自体も正しく認識できているか自分の知識が怪しいといわざるを得ませんが、もしそうなら少なくともfirefoxは同一プロセスでlocalStorageを管理しているから別ウィンドウでそれぞれlocalStorageにアクセスできるにすぎないと考えることもできるかと思います。
6
+
7
+
8
+
9
+ Linux/WindowsともにJavaFXで複数のプロセスでWebViewを用いた際の振る舞いを観察すると、「先に表示したWebView」ではなく「先にlocalStorageを参照した側」でのみlocalStorageが非nullになりそれ以降は他のプロセスではnullになるようでした。
10
+
11
+
12
+
13
+ 複数プロセスでlocalStorageが取得できるような使い方が可能かどうかの情報は残念ながら得られていませんが(**あくまで個人的な推測では**)複数プロセスがある場合は片方でしかlocalStorageインスタンスが取得できない仕様である可能性も捨てきれない気がしました。
14
+
15
+
16
+
17
+ ---
18
+
1
19
  回答は早急だと思いますが、参考情報として・・・
2
20
 
3
21
 

1

表現変更

2017/12/16 12:05

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -1,4 +1,4 @@
1
- 回答するには早急だと思いますが・・・
1
+ 回答は早急だと思いますが、参考情報として・・・
2
2
 
3
3
 
4
4