あなたの質問は、「ユーザーが [保存] をクリックしてフィールドのロックを解除せずに編集ページを放棄したかどうかを判断する良い方法は何ですか?」と理解されています。
しかし、他の場所をクリックしたり、別のページやサイトに移動したり、ブラウザーを閉じたりしたときに、データのロックを解除できるかどうかを判断するのに苦労しています.
誰かが同じアプリケーションから別のページを見るすべてのシナリオは、おそらく何かを確認するために、同じセッション内の別のウィンドウを意味する可能性があります。ユーザーが編集を送信できるウィンドウを開いている可能性があるため、ロック解除をトリガーしたくありません。
ユーザーがページを離れるその他のシナリオでは、onUserExit を使用できます。
ただし、このリストから、「ユーザーが Web ページを開いたままランチに行く」というシナリオを省略します。これが悲観的ロックが問題となる理由です。
したがって、この問題を「ユーザーが [編集] をクリックしたが、妥当な制限時間内に修正して保存できなかった」と言い換えます。
基本的に、ロックはある時点で期限切れになるはずです。
[編集] をクリックすると、保存ロックが作動し、タイマー (5 分?) が開始されます。これは画面にも表示されます。(これらを同期させることが問題になる場合は、クライアント側のタイマーをサーバー側のタイマーよりも短くしてください)。ユーザーはこの時間内に変更を行い、[保存] をクリックする必要があります。おそらく、延長ボタンを追加して時間を延長できます。
原則は、誰かが放置したということではなく、誰かが放置しすぎたことを判断する必要があるということです。また、[編集] をクリックしたユーザーがすぐに編集を行うことを期待していることも示します。
ロックの有効期限が切れたフィールドのロックを解除するには、システムをコーディングする必要があります。
これには、そのような編集ロックを要求する人々にとって、カウントダウンが「クール」に見えるという利点があります。