| 2007/07/25(Wed) 13:30:04 編集(投稿者) 2007/07/25(Wed) 13:28:57 編集(投稿者) 2007/07/25(Wed) 13:25:11 編集(投稿者)
■No5878 (たろ さん) に返信 > 【ソース例】 (Snip) > こんな感じです。 > > しかし、これだとjavascriptのalertを表示し続けるとハートビートできずにセッションタイムアウトを起こしてしまいます。 > 何かセッションをキープする方法はありますでしょうか?
alert() を表示するとユーザーアクションが無いとバックグランド作業がとまってしまうからですよね。
# 訂正(1) # なるほど、alert() を一杯いろんなとこで使っているのですか。 # ふーむ。。。IE オンリーなら、showModelessDialog で alert メッセージダイアログや # confirm を上書きしてしまうのはどーですかね?
# 試してないので自身ないですが、 # window.alert = function(msgNo) { # showModelessDialog("alert.html?msgNo="+ msgNo); # } # # とか出来るかもしれませんね。モーダルではないので、親画面と並列動作できます。 # # 訂正(2) #<script> #window.alert = function() { # alert(" あらーとの上書き "); #} #window.confirm = function() { # # alert(" こんふぁーむのうわがき "); # #} #confirm("ok"); #</script> # # 標準実装のメソッドはさすがに無理でした・・・ #
以下動く保証なしですm(__)m <iframe id="frame1" width=0 height=0></iframe> <script> //30 秒毎にセッション継続ライフビートを送信、受け取ったら忍者ツールみたいに画面隅っこ //にぼんやり表示(表示は5秒後にフェードアウト)。 var saID = null; (function() { saID = setTimeout(function() { var o = document.getElementById("frame1"); o.onreadystatechange = function() { if (this.readyState == 4) { showKeepAlive(); } } o.src = "KeepSessionForm.aspx"; }, 30000 ); })(); function showKeepAlive() { var o = document.getElementById("KEEP_ALIVE_MESSAGE"); o.style.visibility = "visible"; o.style.filter = "alpha(opacity=100)"; var opac = 100; setTimeout(function() { opac -= 5; if (opac > 0) { o.style.filter = "alpha(opacity=" + opac + ")"; setTimeout(arguments.callee, 100); }
}, 5000); //5 秒後に 2秒掛けてフェードアウト } </script> <style> .KEEP_ALIVE_MESSAGE { position:absolute; left:0; top:0; width:150px; height:12px; color:red; background-color:snow; font-size:10px; font-weight:bolder; font-family:Arial Nallow; } </style> <div id="LEEP_ALIVE_MESSAGE">KEEP ALIVE</div>
## ぜんぜん役に立たないレスでした。
|