いくつかの Ajax コンテンツが豊富なページを持つレガシー アプリケーション (従来の ASP と ASP.net の混合) があります。サイトのユーザーは、ページ上で一連のタスクを実行し、かなりの時間かかることが予想されます。 、15〜30分。
要件の 1 つは、サイトにログインしているユーザーが 15 分間操作を行わないと自動的にログアウトされることです。これは現在、メタ タグを使用して、ページで 15 分間非アクティブになった後にユーザーをログアウト ページにリダイレクトすることによって実現されています。
<meta name='Refresh' http-equiv="Refresh" content="900;URL=/someurl/logout.asp">
私たちが抱えている問題は、サーバーとの多くの AJAX 対話があるにもかかわらず、ブラウザーがページにアクティビティがあったと認識しないことです。そのため、ブラウザが非アクティブと見なした 15 分間が経過すると、ユーザーが何かをしている最中であっても、ユーザーは自動的にログアウトされます。
このメッセージ ボードの投稿に触発されて、javascript(JQuery) を使用して煩わしさを修正しようとしました。
以下は、ページでの保存のクリックなどのイベント ハンドラーです。簡単にするために、ここでは、更新時間を 5 秒に変更するためのページの読み込みを示します。
$(document).ready(function() {
var selector = 'meta[name=Refresh]';
var content = $(selector).attr("content"); //"900;URL=/someurl/logout.asp"
$(selector).attr("content", "5;URL=/someurl/logout.asp");
});
メタ タグ コンテンツを (再) 設定する意図は、ページ更新タイマーがリセットされることです。残念ながら、これはうまくいかないようです(IEでは)。
これはレガシ アプリケーションであるため、メタ タグの使用などの決定事項の一部が組み込まれています。問題は、メタ タグの更新を Ajax アプリケーションと平和的に共存させる方法があるかどうかです。私は何か間違ったことをしていますか?この問題を解決する方法はありますか?