2017-02-03 10 views
0

Bootstrap-session-timeoutのOrangehillフォークを使用していますが、1つ例外を除いてうまく動作します。これを再現する方法がわかりません。誰かが私のために光をオンにするのを助けることができるかどうか疑問に思った。ページを更新しないでbootstrap-session-timeoutをリセットする

サイトはBootstrap3とJQuery3でPHPで書かれています。

すべてのページのフッターには、bootstrap-session-timeoutをアクティブにするスクリプトが含まれていますが、マウスを移動するたびにタイマーをリセットするオプションは使用されません。タイムアウト期間内にアクティビティがない場合は、リボンがポップアップし、ユーザーには「接続中」または「サインアウト中」というオプションが与えられます。

これはサイトでうまくいきますが、私たちが持っているのはオーダー編集ページです。オーダー編集ページでは、オーダーにある行を追加、削除、更新できます。ページは編集中にリフレッシュされません。注文行を追加、削除、または更新するために、リンクはJS関数を呼び出し、JS関数はPHPスクリプトを呼び出して更新を実行し、JSは画面内容を動的に更新するために使用されます。

ユーザーが注文を更新するたびにセッションタイムアウトカウンタをリセットする必要があります。

ページの内容の更新が行われるたびに機能を呼び出すことは理想的ですが、個々のbootstrap-session-timeout関数のいずれもJS内で使用できないようです。

これは意味があり、助けや指摘に感謝します。

答えて

0

誰もこの質問に答えなかったので、自分のソリューションを追加することが適切だと思っていましたが、それはベストではないかもしれませんが、うまくいきます。

基本的には、注文入力中は注文入力ページがあります。ユーザーがページ上で何かをしているにもかかわらず、カウントダウンタイマーは継続します(オンキーオプションはオフになっています)。したがって、ユーザーが5分前に注文を最後に更新しても(PHP APIのAjax呼び出しによって処理される更新)、ページが再ロードされていないためカウントダウンタイマーはリセットされません。

私の解決策は、タイムスタンプを、PHPスクリプトがロードされるたびに、PHPセッションIDによってキーされたファイルに書き込むことです。これは、メインページまたはAPIに適用されます。したがって、カウントダウンタイマーが終了すると、タイムアウトスクリプトが呼び出され、ファイル内の最後のアクティビティタイムスタンプがタイムアウトカットオフポイントの前後かどうかがチェックされます。そうであればログアウトスクリプトが呼び出されますが、そうでない場合は現在のページがリフレッシュされ、カウントダウンタイマーがリロードされます。

関連する問題