2012-03-29 8 views
0

サイトには特定のページがあり、ユーザーがこのページに来ると、フィールドを入力するか、何か他の操作を行う必要があります。ユーザーは15分で完了する必要があります。 15分が経過すると、アクションを実行します。クライアント側では単純に解決されます。しかし、それは私にはサーバー上で行う必要があるようです(ユーザーがページを閉じると、タイマーは動作しません)。サイト上の任意のアクションの時間内のユーザーの制限

詳細:
ユーザーが来たら、コントローラの動作を呼び出します。このアクションでは、DBにレコードを追加します。ユーザーが15分で終了しなかった場合は、これらのレコードをDBにマークする必要があります。

これを行うにはどのような方法が最適ですか?
ありがとうございます。

答えて

1

ユーザーアクションでポストされた15分後にクライアント側の隠し属性が設定されているだけです。その隠し属性が存在する場合は、何もしないでください。

または、ページがサーバーからレンダリングされるときに開始時刻に渡します。それを投稿に含めてください。投稿された時間が15分を超える場合は、何もしないでください。

15分で動的にサーバーを呼び出し、ユーザーの入力に関係なくデータを送信する必要がある場合は、いくつかのことを行う必要があります。まず、ユーザーは時計を変更して時間を延長できるので、JavaScriptクライアント側から時計を受け取ることは期待できません。あなたは、AJAX呼び出しによって時計を監視する必要があります。 15分が経過すると、AJAXには関係なくページ全体が投稿されます。

+0

ユーザーがページを閉じるか、別のページに移動した場合は、 – user348173

+0

@ user348173 - http://api.jquery.com/unload/さらに、AJAX –

+0

@ user348173のjQuery関数をアンロードしてください - また、データベースにStartedTimeのようなものを追加することもできます。 nullの場合、開始されず、開始された場合、何らかの理由でページから離れた場合、アプリケーションは、開始時間がロックアウトされるように設定された後、再び開始するかどうかを知ります。 –

関連する問題