1

私たちは jquery/php/mysql システムを使用して、ユーザーがログインして、システムによって構築されたビデオをオンラインで表示できるようにします。ユーザーがビデオのレビューを開始すると、ビデオはそのようにマークされます。しかし今では、ユーザーがレビューを完了せずにブラウザを離れたり、ブラウザを閉じたりするという、従来のブラウザベースのアプリケーションの問題に追い込まれています。その後、そのビデオは常にレビューされているが完了せず、キューに再入力されないという、途方に暮れた状態になります。

オプションは次のとおりです。

  • 期間の境界外にあるレビュー セッションを見つけてキューにリセットするサービス (既に他のサービスがあります) を構築します。
  • ユーザーがログインしたときに、期間の境界外にあるレビュー セッションをリセットします。基本的に、ユーザーがレビューのためにビデオをロックアウトすると、次回ログインしたときにロックが解除されます。
  • 私になされた提案は、php/apache セッションの長さを使用し、有効期限が切れたら、保留中のレビュー ジョブをリセットすることでした。これは共有サーバー上の 1 つのプロジェクトであるため、これを実装する場所がわからないため、Apache 構成であってはなりませんが、リセット メカニズムはデータベース資格情報を認識してリセットできるようにする必要があります。 ..
  • 誰もが嫌う最悪の解決策は、ユーザーが JavaScript を使用して「本当によろしいですか?!」と尋ねて移動できないようにすることです。

このシステムは数人の雇われたレビュアーによって使用されているため、ここで一般の人々を正確に扱っているわけではありませんが、より迅速なレビューのためにユーザーがログインを共有することを防ぐことはできません。同じログインを使用している他のユーザーによってレビューされています。

4

3 に答える 3

1

サーバーに負担をかけない 2 つの優れたオプションがあります。また:

  1. 1 時間ごとに cron ジョブを実行して、期間の境界外にあるレビュー セッションを探します。これには、エンド ユーザーに対して透過的であるという利点があります。ただし、注意しないと、アクティブなセッションを強制終了する可能性があります (ユーザーが複数のタブで操作しているとします)。

  2. ユーザーが JS を使用して移動できないようにします。正直なところ、ユーザーがビデオをレビューしているので、これは私がすることです (ただ見ているだけなら、それは悪いことですが、演技をしているはずだとわかっているので、問題ありません)。今すぐ退出すると、レビューはキャンセルされますよね?.

正直なところ、私はオプション 2 を実行します。SOはそれを使用しており、ここではうまく機能します。すべてのページではなく、アクティブなレビューが行われているページだけ...

于 2011-01-04T14:53:18.340 に答える
0

1 つのビデオが 1 つのページで 1 人によってレビューされた場合。ページがアンロードされ、クライアントがページを離れるときに発生する JavaScript アンロード イベントをキャプチャできます。そのビデオの状態を変更したり、ダイアログを表示してユーザーに決定させることもできます。

卓球システムが役立つかもしれません。後ろでは、ident によってビデオにバインドされた AJAX 呼び出しを行います。その活動が停止すると、ユーザーは停止しました。バックグラウンド プロセスは最新の ping を探し、それがたとえば 1 時間前になると、その状態を変更できます。

于 2011-01-04T14:52:03.593 に答える
0

最初のオプションが最善の策です。ブラウザ ウィンドウが開いている間にビデオの lastestActivity レコードを更新するページに JavaScript タイマーを設定することができます。

オプション 2 はいくつかの理由で問題があります。いくつかは既に言及されていますが、レビュアーが数日間 (休暇中?) ログインしない可能性があることを考慮に入れると、不必要に長い間ビデオのロックが解除されます。

オプション 4 (Javascript onBeforeUnload) は、ブラウザーのクラッシュ、OS のクラッシュ、または電源障害の一般的なケースには対応していません。追加で実装できるものです。

于 2011-01-04T15:02:35.350 に答える