セッション満了時にポップアップを閉じる

java javascript

私のWebアプリケーションにはたくさんのポップアップがあり、私の上司はセッションの有効期限が切れるのを待っています。ダッシュボードに送信されます。 今、ポップアップ内のダッシュボード画面は完全にクールです。 Googleが私を得た場所は次のとおりです。

ポップアップonloadを閉じるためのJavaScriptを持っています。 セッションが期限切れになった場合に応答にこのonloadスクリプトを生成します(jspからのセッションの有効期限の確認および条件付きでonloadスクリプトを含む)。

これは良い方法だと思いますか? このシナリオのベストプラクティスは何ですか?

P.S:私はAJAXの使用を許可されていません

  3  0


ベストアンサー

最善の方法は、ログインを確認し、必要に応じてそれらを閉じるXMLHTTP要求です – これは定期的に行います。

熱心な読者(誰もが意味する)はこれがAJAX要求であることに気付くでしょうが、もしそのようにそれを言い表すならば、あなたが「あなたがAJAXを使うことを許されない」と明確に言った誰かとして受け入れられるかもしれない。

1


過去の人生で、私はどのウィンドウが開いているかを維持するポップアップマネージャオブジェクトを作りました。 まだ行っていない場合は、おそらくこれらのいずれかを作成する必要があります。 次に、 `+ setTimeout `を使用して、数分(または希望する時間)が経過した後に関数を呼び出すことができます。 これは最近のアクティビティをチェックし(おそらくAJAX経由で)、セッションが期限切れになったと判断した場合はポップアップを閉じます。 そうでない場合は、最新のアクティビティに合わせて適切に調整された新しい時間で、 ` setTimeout +`を再度呼び出します。

AJAX編集の前に^^。

さて、あなたはAJAXを使うことができないので、あなたがそれがポップアップであることを告げる何かをURLに入れることができますか? そうすれば、ユーザーがリロードを押したときにログイン画面を表示しないことがわかります。

1


あなたの上司があなたにAJAXを使わずにこれを達成するように頼んでいるなら、あなたは問題を抱えています。 彼は、ブラウザがサーバーに(ページを更新せずに)持っている唯一の接続がjavascript(彼がajaxであると理解しているもの)であることを理解するべきです。

これを実行する最善の方法は、ページにスクリプトを設定して、ユーザーがまだ30秒ごとにログインしているかどうかをサーバーに確認することです。

setInterval(function(){$ .get( "loggingin.php"、function(result){if(!result.isLoggedIn)window.close();});}、30000);}

このスクリプトは、javascriptソリューションを迅速に開発するためにjQueryフレームワークを使用していることを前提としています。 これはJSON(Javascript Object-notation)を使用して、Login.phpファイルからの戻り値をテストします。

つまり、AJAXを使う必要があります。 あなたの上司に他に方法がないことを伝えなさい。 それでもうまくいかない場合は、数学を使わずに小切手帳のバランスをとるように依頼してください。

1


Webアプリケーションでモーダルダイアログを実装する別の方法は、次のとおりです。

  1. ダイアログをDIVでモデル化します。デフォルトは次のように表示されます。

  2. 必要な操作があったら、モーダルダイアログDIVをページソースに挿入/追加します

  3. CSS z-indexプロパティを設定して、モーダルダイアログDIVが表示され、ページの上にオーバーレイされるようにCSS表示をリセット

  4. 正常に実行されたとき、またはユーザーがキャンセルしたときにモーダルダイアログを消す

モーダルダイアログはページソースの一部なので、セッションがタイムアウトするとダイアログは消えます。 このアプローチでは、ポスターが対処しようとしているために孤立する可能性のあるサポートウィンドウが生成されません。 そしてそれはAJAXを使用しないという要件に適合します。

あなたはこれらを手作業でコーディングすることができますが、私はそれをお勧めしません。さまざまなブラウザをサポートする必要があるからです。 Yahoo User Interfaceを見てください。 あなたはあなたのニーズに合うようにそれを調整することができます(IE:モーダルダイアログのみ)、そして要求が将来変化するならそれはAJAXをサポートするでしょう。

モーダルダイアログからモーダルダイアログを生成することに注意してください。

1


理論的には、隠しフラッシュウィジェットを使用することでAJAXを回避できます。

しかし、もっと現実的には、AJAXは「正しい」解決策であり、上司に相談して、この「AJAXがない」ルールの由来を判断し、AJAXがこの問題を解決する最善の方法であると確信します。

AJAXは実装に時間がかかりすぎると思いますか? もしそうなら、あなたは彼が間違っていることを証明する必要があります。 彼はそれを維持するのが難しいだろうと思いますか? もしそうなら、これを行うためのコードがどれほど単純になるか、そして一般的なAJAXライブラリがどれほど広く使用されているかを示す。 あなたの上司が理にかなっているならば、彼の目標はその製品にとって最良のものであり、あなたは彼と推論することができるはずです。

0


タイトルとURLをコピーしました