C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: JavaScriptでの画面終了について


(過去ログ 62 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■35956 / inTopicNo.1)  JavaScriptでの画面終了について
  
□投稿者/ ケイ (20回)-(2009/05/16(Sat) 15:38:41)

分類:[.NET 全般] 

お世話になっております。

JavaScriptで分からない事が出てきたのでご教授の方お願いいたします。

ASP.NET(VB)でClientScript.RegisterStartupScriptを使用してJSを埋め込んで処理を行っています。

現在2重起動の制御を行い、2重起動の場合警告メッセージを表示して画面を閉じると言う事を行いたいのですが、

警告メッセージは表示できたのですが、画面が閉じられない状態です。
下記がソースです。
If _mutex.WaitOne(0, False) = False Then
'すでに起動していると判断して終了
ClientScript.RegisterStartupScript(Me.GetType(), "key", "<script>alert(showMsg(""2重起動""));</script>")
ClientScript.RegisterStartupScript(Me.GetType(), "key", "<script>window.close();</script>")
End If
VBで言うform.closeのような動きをさせたいのですが、window.closeでは画面は閉じられないのでしょうか?

あと2重起動チェックを行う際に、コンパイル実行後の画面が起動していたら2重起動チェックに入るようにしたいのですが、
VisualWebDeveloperを2つ起動した時点で2重起動チェックになってしまいます。
こういうものなのでしょうか?
引用返信 編集キー/
■35958 / inTopicNo.2)  Re[1]: JavaScriptでの画面終了について
□投稿者/ Azulean (376回)-(2009/05/16(Sat) 18:13:26)
No35956 (ケイ さん) に返信
> 警告メッセージは表示できたのですが、画面が閉じられない状態です。
> 下記がソースです。
> If _mutex.WaitOne(0, False) = False Then
> 'すでに起動していると判断して終了
> ClientScript.RegisterStartupScript(Me.GetType(), "key", "<script>alert(showMsg(""2重起動""));</script>")
> ClientScript.RegisterStartupScript(Me.GetType(), "key", "<script>window.close();</script>")
> End If
そもそも、Mutexで二重起動とか判定できたとしても、それはサーバー側での判断であり、同一クライアントでの2重接続の判断はできませんが、それで良いのですか?
例えば、3人から接続があったとしても、1人しか起動できず、あとの2人は2重起動とかではじかれることもあり得る。

> VBで言うform.closeのような動きをさせたいのですが、window.closeでは画面は閉じられないのでしょうか?
ブラウザや設定によってはウィンドウを閉じれないことがあったかと。
それをどうにかすることはできないと思った方が良いかな。
引用返信 編集キー/
■35959 / inTopicNo.3)  Re[2]: JavaScriptでの画面終了について
□投稿者/ ケイ (21回)-(2009/05/16(Sat) 18:26:45)
No35958 (Azulean さん) に返信
> ■No35956 (ケイ さん) に返信
>>警告メッセージは表示できたのですが、画面が閉じられない状態です。
>>下記がソースです。
>> If _mutex.WaitOne(0, False) = False Then
>> 'すでに起動していると判断して終了
>> ClientScript.RegisterStartupScript(Me.GetType(), "key", "<script>alert(showMsg(""2重起動""));</script>")
>> ClientScript.RegisterStartupScript(Me.GetType(), "key", "<script>window.close();</script>")
>> End If
> そもそも、Mutexで二重起動とか判定できたとしても、それはサーバー側での判断であり、同一クライアントでの2重接続の判断はできませんが、それで良いのですか?
> 例えば、3人から接続があったとしても、1人しか起動できず、あとの2人は2重起動とかではじかれることもあり得る。
>
>>VBで言うform.closeのような動きをさせたいのですが、window.closeでは画面は閉じられないのでしょうか?
> ブラウザや設定によってはウィンドウを閉じれないことがあったかと。
> それをどうにかすることはできないと思った方が良いかな。
Azuleanさん ご返答ありがとうございます。
あれ…今まで排他制御はmutexで行っていた(自分で設計したわけではないですけど…)ので、そういうものだと勘違いしていました…。
クライアント側での2重起動チェックの行うに当たり、参考になる手法等がありましたら教えていただけないでしょうか…?


引用返信 編集キー/
■35960 / inTopicNo.4)  Re[3]: JavaScriptでの画面終了について
□投稿者/ Azulean (377回)-(2009/05/16(Sat) 18:44:25)
No35959 (ケイ さん) に返信
> Azuleanさん ご返答ありがとうございます。
> あれ…今まで排他制御はmutexで行っていた(自分で設計したわけではないですけど…)ので、そういうものだと勘違いしていました…。
Mutexは実行している環境での制御になります。
Windowsアプリケーションであれば二重起動対策にはなりますが、ASP.NETではサーバーで実行されるコードなので、通用しません。

> クライアント側での2重起動チェックの行うに当たり、参考になる手法等がありましたら教えていただけないでしょうか…?
厳密なのは無理なんじゃないですか?
例えば、IEとFireFoxで同時に接続していることを検出するのは困難か不可能です。

実現できたとしても使い勝手が悪いかと思いますが、なぜ、それを実現したかったのでしょうか?
引用返信 編集キー/
■35961 / inTopicNo.5)  Re[4]: JavaScriptでの画面終了について
□投稿者/ ケイ (22回)-(2009/05/16(Sat) 19:35:53)
No35960 (Azulean さん) に返信
> ■No35959 (ケイ さん) に返信
>>Azuleanさん ご返答ありがとうございます。
>>あれ…今まで排他制御はmutexで行っていた(自分で設計したわけではないですけど…)ので、そういうものだと勘違いしていました…。
> Mutexは実行している環境での制御になります。
> Windowsアプリケーションであれば二重起動対策にはなりますが、ASP.NETではサーバーで実行されるコードなので、通用しません。
>
そうなのですか!
とても勉強になりました、ありがとうございます。

>>クライアント側での2重起動チェックの行うに当たり、参考になる手法等がありましたら教えていただけないでしょうか…?
> 厳密なのは無理なんじゃないですか?
> 例えば、IEとFireFoxで同時に接続していることを検出するのは困難か不可能です。
>
> 実現できたとしても使い勝手が悪いかと思いますが、なぜ、それを実現したかったのでしょうか?
実現したかった理由としては、顧客の要望だったので…。
DB等を使用すれば簡単にできるとは思うのですが、時間の関係上クライアント側でのみ実現出来ればと…。

色々調べても手法や参考になるものがないので、無理っぽいですね…。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -