0

複数のメッセージの翻訳システムをコーディングしています。

翻訳が必要なすべてのメッセージを一覧表示した表を含むページがあります。翻訳者がメッセージをクリックして翻訳すると、他の翻訳者を割り当てることができないためメッセージをロックします。

問題は、翻訳者が何かを書く代わりに、戻るボタンやブラウザを閉じるなどの型にはまらない方法でページを離れたときに発生します。

これが発生した場合、メッセージのロックを解除して、他の翻訳者が再び利用できるようにしたいと考えています。

どうすればこの動作に到達できますか?

私はJavaScriptのonbeforeunloadイベントを知っていますが、ユーザーがページを更新するたびにトリガーされ、これは私が望むものではありません.

事前に

編集: 毎分サーバーに通知するための js ajax 呼び出しを実装することが道のりのようです。問題は、PHP サーバー側をどのように処理するかです。

4

2 に答える 2

0

onbeforunload を使用して、変更を保存せずにページを本当に離れたいかどうかをユーザーに尋ねることの何が問題になっていますか?

手動の保存ボタンを証明しながら、前述のアプローチを使用します。また、ロックのタイムアウトが役立つため、ユーザーがフィールドを数分間編集していない場合、ロックが解除され、JS AJAX 呼び出しを介してユーザーに通知されます。

編集: AJAX タイマーを実装するには、次のようにします。

  • 翻訳項目への最終アクセス時刻をデータベースまたは PHP 側のファイルに保存する
  • 30 秒ごとに 1 回、最終アクセス時刻を確認する PHP スクリプトへのAJAX 呼び出しを実行します。
  • 結果に応じて、PHP スクリプトから JavaScript 部分に「OK」または「TIMEOUT」メッセージを返します。JavaScript 部分は何もしない (OK の場合) か、翻訳を無効にしてタイムアウトについて翻訳に通知します。
于 2013-09-13T08:52:57.260 に答える